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

Dil*_*lon 7 heroku heroku-cli

尝试将项目推送到 heroku - 在使用 heroku-cli 和连接到 Github 时遇到相同的错误。

错误日志:

-----> Building dependencies

       Installing node modules (package.json + package-lock)

       npm ERR! Cannot read property 'match' of undefined

Run Code Online (Sandbox Code Playgroud)

包.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"
  }
}

Run Code Online (Sandbox Code Playgroud)

React 最初并不在 devDependencies 中 - 将其作为修复早期错误的尝试。

无论哪种方式,问题仍然存在。

小智 14

我有同样的问题,但是,没有上述工作对我提到的解决方案,我甚至想清理我的远程回购,使用Heroku的回购插件,顺便也可以安装使用Heroku的插件:安装Heroku的回购之后的Heroku回购:reset -a appname来试试这个。

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

尝试使用以下步骤。

  1. heroku 配置:设置 NODE_MODULES_CACHE=false
  2. 现在再次推送 - git push heroku master


Don*_*ody 4

检查 package-lock.json

此问题很可能与您的package-lock.json. 该文件会导致很多问题,但建议您将其签入源中

话虽如此,以下两件事之一应该可以解决您的问题:

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

另外,您不必将其列为react开发依赖项。您可以将其从您的package.json.