jenkins 编译react项目报错
报以下错误
10:16:17 + npm run build:qa
10:16:17
10:16:17 > xxx-web@0.1.0 build:qa
10:16:17 > DISABLE_ESLINT_PLUGIN=true cross-env NODE_STAGE=qa node scripts/build.js
10:16:17
10:16:18 Creating an optimized production build...
10:18:20
10:18:20 Treating warnings as errors because process.env.CI = true.
10:18:20 Most CI servers set it automatically.
10:18:20
10:18:20 Failed to compile.
10:18:20
错误原因很明显。因为环境变量 process.env.CI
被设置为 true
,所以警告被当作错误处理。在 create-react-app
中,如果 CI
环境变量被设置为 true
(这在大多数 CI 服务器上是默认设置),那么构建过程中的任何警告都会导致构建失败。
解决方案:
允许警告: 如果你决定警告不会影响你的应用程序,你可以在 Jenkins 任务中显式地设置 CI
环境变量为 false
。这样,警告不会被当作错误处理:
CI=false npm run build:qa
或者修改构建脚本: 你可以更新你的 package.json
中的构建命令,强制它不考虑 CI
环境变量。例如:
"build:qa": "CI=false DISABLE_ESLINT_PLUGIN=true cross-env NODE_STAGE=qa node scripts/build.js"
但这种方法的缺点是它会修改所有环境的构建行为,不仅仅是 Jenkins。