You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript自动化项目在服务器Jenkins执行时报错求助

解决WebdriverIO TypeScript项目在Ubuntu Jenkins中报错"Cannot use import statement outside a module"

问题根源

Ubuntu Jenkins环境中,Node.js默认将.ts配置文件当作CommonJS模块加载,但你的wdio.conf.regression.ts使用了ES模块的import语法,导致解析失败。本地Windows环境正常可能是因为Node版本、项目配置或依赖环境的差异。

解决方案

  • 在package.json中声明ES模块类型
    在项目根目录的package.json中添加以下配置,告诉Node.js整个项目采用ES模块规范:

    {
      "type": "module"
    }
    
  • 调整tsconfig.json的模块配置
    修改tsconfig.json中的module和moduleResolution字段,确保TypeScript编译输出符合ES模块要求:

    {
      "compilerOptions": {
        "module": "ESNext",
        "moduleResolution": "node",
        // 保留其他原有配置
      }
    }
    
  • 用ts-node的ES模块模式启动WebdriverIO
    替换Jenkins中的启动命令,使用ts-node-esm加载ES模块格式的配置文件:

    npx ts-node-esm ./node_modules/@wdio/cli/bin/wdio.js wdio.conf.regression.ts
    
  • 对齐本地与服务器的Node.js版本
    检查本地Windows和Ubuntu Jenkins的Node.js版本,确保两者一致(建议使用Node.js 16及以上版本,对ES模块支持更完善)。可通过node -v查看版本,使用nvm管理不同版本的Node.js。

  • 清理Jenkins工作区依赖缓存
    在Jenkins构建步骤中先清理旧依赖,再重新安装:

    rm -rf node_modules package-lock.json
    npm ci
    

内容的提问来源于stack exchange,提问作者Гарник Геворгян

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 12:20:12