TravisCI构建失败,即使更改了alpine版本

76次阅读
没有评论

问题描述

在使用TravisCI进行Docker构建时,遇到了一个失败的问题。他在移除了App.test.js文件中的逻辑后,仍然遇到了以下错误:

FAIL src/App.test.js  ● Test suite failed to run    TypeError: Cannot assign to read only property 'Symbol(Symbol.toStringTag)' of object '#<process>'      at exports.default (node_modules/jest-util/build/create_process_object.js:15:34)

他怀疑问题可能是最新版本的node引起的,因为他看到其他人也遇到了类似的错误消息,所以他尝试将版本更改为node:10.15-alpine,但这个更改并没有解决问题。TravisCI继续以相同的错误失败构建,用户想知道问题出在哪里。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据最佳回答,你不能仅仅依靠FROM node:10.15-alpine来解决这个问题。你需要使用Facebook团队提供的修复方法。如果你在修改了Dockerfilenode:10.15-alpine后仍然没有解决问题,可以尝试将package.json文件中的react-scripts更改为以下Facebook修复版本:

"react-scripts": "3.0.0-next.b0cbf2ca"

然后,删除node_modules/文件夹并运行npm install命令。检查你的jest-util文件,它应该有以下输出:

└─┬ react-scripts@3.0.0-next.b0cbf2ca  ├─┬ babel-jest@24.5.0  │ └─┬ @jest/transform@24.5.0  │   ├─┬ jest-haste-map@24.5.0  │   │ └── jest-util@24.5.0  deduped  │   └── jest-util@24.5.0  └─┬ jest@24.5.0    └─┬ jest-cli@24.5.0      ├─┬ @jest/core@24.5.0      │ ├─┬ @jest/reporters@24.5.0      │ │ └── jest-util@24.5.0  deduped      │ ├─┬ jest-runner@24.5.0      │ │ └── jest-util@24.5.0  deduped      │ ├─┬ jest-runtime@24.5.0      │ │ └── jest-util@24.5.0  deduped      │ ├── jest-util@24.5.0  deduped      │ └─┬ jest-watcher@24.5.0      │   └── jest-util@24.5.0  deduped      ├─┬ jest-config@24.5.0      │ ├─┬ jest-environment-jsdom@24.5.0      │ │ └── jest-util@24.5.0  deduped      │ ├─┬ jest-environment-node@24.5.0      │ │ └── jest-util@24.5.0  deduped      │ ├─┬ jest-jasmine2@24.5.0      │ │ ├─┬ jest-each@24.5.0      │ │ │ └── jest-util@24.5.0  deduped      │ │ └── jest-util@24.5.0  deduped      │ └── jest-util@24.5.0  deduped      └── jest-util@24.5.0  deduped

现在你应该可以成功运行TravisCI构建了。问题是react-scripts版本2.1.8与新版本的Node冲突。感谢Facebook团队的帮助。
参考链接:https://github.com/facebook/create-react-app/issues/6475

正文完