记一次前端nodejs 编译报错“Treating warnings as errors because process.env.CI = true”
记一次前端nodejs 编译报错“Treating warnings as errors because process.env.CI = true”
现象
报错日志如下
script returned exit code 1 [2023-07-07 23:12:06] + yarn --cwd /root/workspace build:test [2023-07-07 23:12:06] yarn run v1.22.4 [2023-07-07 23:12:06] $ dotenv -e .env.test node scripts/build.js [2023-07-07 23:12:07] shouldUseSourceMap------x-x--> false [2023-07-07 23:12:07] isEnvProduction------x-x--> true [2023-07-07 23:12:07] Creating an optimized production build... [2023-07-07 23:12:07] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:12:07] npx browserslist@latest --update-db [2023-07-07 23:12:07] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:29] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:14:29] npx browserslist@latest --update-db [2023-07-07 23:14:29] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:29] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:14:29] npx browserslist@latest --update-db [2023-07-07 23:14:29] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:29] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:14:29] npx browserslist@latest --update-db [2023-07-07 23:14:29] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:29] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:14:29] npx browserslist@latest --update-db [2023-07-07 23:14:29] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:29] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:14:29] npx browserslist@latest --update-db [2023-07-07 23:14:29] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:29] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:14:29] npx browserslist@latest --update-db [2023-07-07 23:14:29] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:29] Browserslist: caniuse-lite is outdated. Please run: [2023-07-07 23:14:29] npx browserslist@latest --update-db [2023-07-07 23:14:29] Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating [2023-07-07 23:14:30] [2023-07-07 23:14:30] Treating warnings as errors because process.env.CI = true. [2023-07-07 23:14:30] Most CI servers set it automatically. [2023-07-07 23:14:30] [2023-07-07 23:14:30] Failed to compile. [2023-07-07 23:14:30] [2023-07-07 23:14:30] Critical dependency: require function is used in a way in which dependencies cannot be statically extracted [2023-07-07 23:14:30] [2023-07-07 23:14:30] resolve-url-loader: webpack misconfiguration [2023-07-07 23:14:30] webpack or the upstream loader did not supply a source-map [2023-07-07 23:14:30] [2023-07-07 23:14:30] resolve-url-loader: webpack misconfiguration [2023-07-07 23:14:30] webpack or the upstream loader did not supply a source-map
分析原因
初步怀疑是代码缺少依赖,检查其他环境这个分支的发布发现正常编译,排除代码问题。
再次怀疑是nodejs版本有问题,检查正常编译的nodejs版本都为node-v14.20.0,排除了版本影响。
怀疑是打包机或缓存影响,切到香港节点的打包机,问题仍是一样复现,排除了打包机和缓存的问题。
最后经过仔细查看日志发现了问题所在 “Treating warnings as errors because process.env.CI = true.”
解决方法
Coding
修改编译的命令,指定env.CI = false即可。具体配置如下【coding CI】:
#原来编译命令 sh 'yarn --cwd ${PROJECT_PATH} build:test' #修改编译命令为 sh 'export CI=false && yarn --cwd ${COS_UPLOAD_FROM_PATH} build:test --verbose'
在CI环境中设置process.env.CI
变量的方法因CI工具而异。
Travis CI
-
Travis CI:在
.travis.yml
文件中添加env
部分,设置CI
变量为true
:env: - CI=true
CircleCI
在.circleci/config.yml
文件中添加environment
部分,设置CI
变量为true
environment: CI: true
Jenkins
在Jenkins的构建环境中设置环境变量CI=true
environment { CI = 'false' }
GitLab CI/CD
在.gitlab-ci.yml
文件中添加variables
部分,设置CI
变量为true
:
variables: CI: "true"
总结
排查处理问题,还是需要从问题的现象和可能出现的因素去排查,日志是一个重要排查来源。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2022-07-07 记Python编译报错--unexpected indent
2022-07-07 k8s--must specify a peer