问题描述
在使用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团队提供的修复方法。如果你在修改了Dockerfile
为node: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
正文完