CircleCI构建Create React App时出现fs-extra模块相关错误如何解决?
错误原因
这个错误确实和你使用的Node.js版本直接相关:
- 报错日志里指向的
} catch {语法属于ES2019新增的可选catch绑定特性,允许catch子句不携带错误参数,该特性从Node.js 10.x版本才开始正式支持。 - 你CircleCI配置中使用的是
circleci/node:9.8镜像,Node 9.x版本不支持上述语法,所以运行react-scripts依赖的fs-extra包代码时直接抛出语法错误。 - 你使用的
react-scripts@4.0.3官方要求的Node.js最低版本为10.14.2,和你CI环境的Node 9.8版本不兼容。
解决方案
只需要修改你的.circleci/config.yml配置,把Docker镜像替换为符合版本要求的Node.js镜像即可,推荐使用长期支持的LTS版本,示例修改如下:
# .circleci/config.yml version: 2.1 jobs: build: docker: # 替换为14.x LTS版本,也可以根据你的项目需求选择10.x以上的其他兼容版本 - image: circleci/node:14 steps: - checkout - run: echo "npm installing" - run: npm install - run: CI=true npm run build
修改后重新触发构建即可解决该问题。建议你后续保持本地开发Node版本和CI环境版本一致,避免出现类似的环境兼容性问题。
内容的提问来源于stack exchange,提问作者Noah Kim
相关产品推荐
相关产品推荐

