试图将项目推送到heroku-使用heroku-cli和连接到Github时遇到相同的错误。
错误日志:
-----> Building dependencies
Installing node modules (package.json + package-lock)
npm ERR! Cannot read property 'match' of undefined
Package.json
{
"name": "myApp",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-router-dom": "^4.3.1",
"react-scripts": "2.1.3",
"react-social-icons": "^4.1.0",
"react-spring": "^7.2.10"
},
...
"eslintConfig": {
"extends": "react-app"
},
"engines": {
"node": "10.13.0"
},
...
"devDependencies": {
"react": "^16.7.0"
}
}
React最初不在devDependencies中-尝试修复早期错误。
问题仍然存在。
答案 0 :(得分:14)
我遇到了同样的问题,但是上面提到的所有解决方案都不适合我,我什至尝试使用heroku-repo插件清理远程仓库,顺便说一下,您可以使用 heroku插件进行安装:install heroku -repo ,然后是 heroku repo:reset -a appname ,以试试这个运气。
对我有用的解决方案是从heroku禁用node_modules缓存。 Heroku维护一个缓存目录,该目录在构建之间保持不变。该缓存用于存储npm,yarn和bower的缓存。
尝试使用以下步骤。
答案 1 :(得分:2)
您可能想在终端上heroku config:set NODE_MODULES_CACHE=false
执行此操作。这是我们为同一错误工作的原因。
答案 2 :(得分:1)
此问题很可能与您的package-lock.json
有关。此文件会引起很多问题,但建议您check it into source。
话虽如此,以下两种方法之一可以解决您的问题:
package-lock.json
和node_modules
,然后重新安装所有依赖项:npm i
。完成后,尝试再次推送到Heroku。package-lock.json
文件,进行更改,然后尝试再次推送到Heroku。此外,您不必将react
列为开发依赖项。您可以从package.json
中删除它。
答案 3 :(得分:0)
只需删除锁定文件,然后重试即可。