Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot read property 'match' on undefined on pushing to heroku

Tried pushing a project to heroku - got the same error when using heroku-cli and when connecting to Github.

Error Log:

-----> 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 wasn't initially in devDependencies - have that there as an attempt at fixing an earlier error.

Issue persists either way.

like image 268
Dillon Avatar asked Jan 28 '19 20:01

Dillon


People also ask

How do you fix undefined properties Cannot be read?

Add undefined check on variable To fix the “cannot read property of undefined” error, check that the value is not undefined before accessing the property. For example, in this code: const auth = undefined; console. log(auth); // undefined // TypeError: Cannot read properties of undefined (reading 'user') console.

Can not read property match of undefined?

While not a root-cause solution, a workaround is: Delete node_modules and package-lock. json.


2 Answers

I had this same issue, however none of the solutions mentioned above worked for me, I even tried to clean my remote repo, using heroku-repo plugin which by the way you can install using heroku plugins:install heroku-repo followed by heroku repo:reset -a appname to try luck with this one.

The solutions which worked for me was to disable the node_modules cache from heroku. Heroku maintains a cache directory that is persisted between builds. This cache is used to store caches for npm, yarn, and bower.

Try using the following steps.

  1. heroku config:set NODE_MODULES_CACHE=false
  2. now push again with - git push heroku master
like image 137
Hasneet Singh Avatar answered Oct 02 '22 00:10

Hasneet Singh


This issue is most likely related to your package-lock.json. This file causes a lot of issues, but it's recommended that you check it into source.

With that said, one of two things should fix your issue:

  1. First try deleting your package-lock.json and node_modules locally, then re-install all of your dependencies: npm i. Try pushing to Heroku again after this is complete.
  2. If the suggestion above does not work, just delete your package-lock.json file locally, commit your change, and try pushing to Heroku again.

Also, you should not have to list react as a dev dependency. You can delete that from your package.json.

like image 23
Don Brody Avatar answered Oct 02 '22 00:10

Don Brody