推送到heroku时无法读取未定义的属性“ match”

时间:2019-01-28 20:48:54

标签: heroku heroku-cli

试图将项目推送到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中-尝试修复早期错误。

问题仍然存在。

4 个答案:

答案 0 :(得分:14)

我遇到了同样的问题,但是上面提到的所有解决方案都不适合我,我什至尝试使用heroku-repo插件清理远程仓库,顺便说一下,您可以使用 heroku插件进行安装:install heroku -repo ,然后是 heroku repo:reset -a appname ,以试试这个运气。

对我有用的解决方案是从heroku禁用node_modules缓存。 Heroku维护一个缓存目录,该目录在构建之间保持不变。该缓存用于存储npm,yarn和bower的缓存。

尝试使用以下步骤。

  1. heroku config:set NODE_MODULES_CACHE = false
  2. 现在再次使用- git push heroku master

答案 1 :(得分:2)

您可能想在终端上heroku config:set NODE_MODULES_CACHE=false执行此操作。这是我们为同一错误工作的原因。

答案 2 :(得分:1)

此问题很可能与您的package-lock.json有关。此文件会引起很多问题,但建议您check it into source

话虽如此,以下两种方法之一可以解决您的问题:

  1. 首先尝试在本地删除package-lock.jsonnode_modules,然后重新安装所有依赖项:npm i。完成后,尝试再次推送到Heroku。
  2. 如果以上建议不起作用,只需在本地删除package-lock.json文件,进行更改,然后尝试再次推送到Heroku。

此外,您不必将react列为开发依赖项。您可以从package.json中删除它。

答案 3 :(得分:0)

只需删除锁定文件,然后重试即可。