创建React App-Build在Netlify上不断失败,但在本地可用

时间:2019-05-09 21:59:31

标签: create-react-app netlify

10:52:56 PM: There might be a problem with the project dependency tree.
10:52:56 PM: It is likely not a bug in Create React App, but something you need to fix locally.
10:52:56 PM: The react-scripts package provided by Create React App requires a dependency:
10:52:56 PM:   "babel-jest": "23.6.0"
10:52:56 PM: Don't try to install it manually: your package manager does it automatically.
10:52:56 PM: However, a different version of babel-jest was detected higher up in the tree:
10:52:56 PM:   /opt/build/repo/node_modules/babel-jest (version: 24.7.1)
10:52:56 PM: Manually installing incompatible versions is known to cause hard-to-debug issues.
10:52:56 PM: If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
10:52:56 PM: That will permanently disable this message but you might encounter other issues.
10:52:56 PM: To fix the dependency tree, try following the steps below in the exact order:
10:52:56 PM:   1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
10:52:56 PM:   2. Delete node_modules in your project folder.
10:52:56 PM:   3. Remove "babel-jest" from dependencies and/or devDependencies in the package.json file in your project folder.
10:52:56 PM:   4. Run npm install or yarn, depending on the package manager you use.
10:52:56 PM: In most cases, this should be enough to fix the problem.
10:52:56 PM: If this has not helped, there are a few other things you can try:
10:52:56 PM:   5. If you used npm, install yarn (http://yarnpkg.com/) and repeat the above steps with it instead.
10:52:56 PM:      This may help because npm has known issues with package hoisting which may get resolved in future versions.
10:52:56 PM:   6. Check if /opt/build/repo/node_modules/babel-jest is outside your project directory.
10:52:56 PM:      For example, you might have accidentally installed something in your home folder.
10:52:56 PM:   7. Try running npm ls babel-jest in your project folder.
10:52:56 PM:      This will tell you which other package (apart from the expected react-scripts) installed babel-jest.
10:52:56 PM: If nothing else helps, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
10:52:56 PM: That would permanently disable this preflight check in case you want to proceed anyway.
10:52:56 PM: P.S. We know this message is long but please read the steps above :-) We hope you find them helpful!

因此,我最近将新版本推入了我的应用程序,并遇到了上述错误,这与babel-jest有关。这不在我的package.json中,它必须是对等依赖项。

该版本在本地运行良好,我已通过删除node_modules和package-lock.json进行确认,所有安装和运行都很好。

当我按下master时,netlify会记录此错误,并且不会继续。

2 个答案:

答案 0 :(得分:0)

对我来说,解决此问题的方法是在package-lock.json中搜索babel-jest。然后,我将该版本添加到package.json中的某个决议条目中,如下所示:

"resolutions": { "babel-jest": "23.6.0" }

这解决了问题,我的应用程序已在Netlify上正确发布。

答案 1 :(得分:0)

我知道这个问题有点老了,答案已经被选择了,但是上面的答案对我不起作用。所以我在这里解决我的问题

将package-lock.json放在.gitignore文件中,但是如果您已经将其上传到github而不提及.gitignore文件,则将其从git cache(local repo)中删除

git rm -r --cached package-lock.json
git add .
git commit -m 'Remove package-lock.json'
git push origin master

在netlify网站中,转到“网站设置”->“构建和部署”->“环境”,然后将以下内容放入环境变量中

SKIP_PREFLIGHT_CHECK=true

如果您的netlify构建假定警告为错误,则将以下内容置于“构建设置”->“构建命令”中

CI=false npm run build