Развертывание Heroku продолжает завершаться ошибкой на этапе «Обрезка devDependencies» - PullRequest
4 голосов
/ 16 февраля 2020

У меня продолжают возникать проблемы с развертыванием в Heroku, и я не могу выяснить, что происходит со мной в жизни. Журнал ошибок Heroku сообщает мне об этом после успешного создания моего приложения реакции:

-----> Caching build
       - node_modules

-----> Pruning devDependencies
       npm ERR! Cannot read property 'match' of undefined

Вот мой пакет. json

{
  "name": "test",
  "version": "1.0.0",
  "homepage": "./",
  "description": "test",
  "main": "server.js",
  "node": "v12.13.1",
  "npm": "6.13.7",
  "scripts": {
    "heroku": "node server.js",
    "client-install": "npm install --prefix client",
    "build": "cd client && react-scripts build",
    "start": "node server.js",
    "server": "nodemon server.js",
    "client": "npm start --prefix client",
    "dev": "concurrently \"npm run server\" \"npm run client\""
  },
  "author": "John Doe",
  "license": "MIT",
  "dependencies": {
    "@material-ui/core": "^4.8.0",
    "axios": "^0.19.0",
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.18.3",
    "classnames": "^2.2.6",
    "concurrently": "^5.1.0",
    "date-fns": "^2.8.1",
    "debug": "^4.1.1",
    "depcheck": "^0.9.1",
    "eslint-plugin-flowtype": "^4.6.0",
    "express": "^4.16.4",
    "fibers": "^4.0.2",
    "growl": "^1.10.5",
    "heroku": "^7.35.1",
    "history": "^4.10.1",
    "is-empty": "^1.2.0",
    "jquery": "^3.4.1",
    "jsonwebtoken": "^8.3.0",
    "jwt-decode": "^2.2.0",
    "material-table": "^1.54.2",
    "material-ui": "^0.20.2",
    "minimatch": "^3.0.4",
    "moment": "^2.23.0",
    "mongodb": "^3.5.3",
    "mongoose": "^5.8.9",
    "mongoose-global": "^1.0.1",
    "morgan": "^1.9.1",
    "node-sass": "^4.13.0",
    "passport": "^0.4.0",
    "passport-jwt": "^4.0.0",
    "plaid": "^4.6.0",
    "react": "^16.12.0",
    "react-dom": "^16.12.0",
    "react-ga": "^2.7.0",
    "react-plaid-link-button": "0.0.4",
    "react-router-dom": "^5.1.2",
    "react-scripts": "^3.3.0",
    "react-slick": "^0.25.2",
    "react-stripe-elements": "^6.0.1",
    "react-vis": "^1.11.7",
    "redux-thunk": "^2.3.0",
    "sass": "^1.24.0",
    "slick": "^1.12.2",
    "slick-carousel": "^1.8.1",
    "typescript": "^3.7.4",
    "update-mongo": "0.0.4",
    "validator": "^12.2.0",
    "vis": "^4.21.0-EOL"
  },
  "devDependencies": {},
  "engines": {
    "node": "12.x"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

Что, пожалуй, самое неприятное, это то, что я удалось успешно развернуть один раз на днях, но я не уверен, что изменилось. Возвращаясь к моему git, я не вижу ничего, что могло бы иметь значение.

Вещи, которые я пробовал:

  • удаление пакета. json
  • добавление "devDependencies": {} в мой пакет. json (хотя я успешно развернулся без него )
  • обновление узла и добавление раздела engines в мой пакет. json для соответствия.
  • выполнение npm локальное удаление
  • , гарантирующее обновление всех пакетов и ссылки соответственно в пакете. json

Вещи, которые я подозреваю, могут быть проблемой:

  • Может быть, каким-то образом текущая версия моего приложения, которая активно развернута на heroku мешает моему новому развертыванию? Тем не менее, я пытался уменьшить динамо и развернуть. Кроме того, npm ERR! Cannot read property 'match' of undefined, кажется, указывает на что-то еще?

Ответы [ 2 ]

14 голосов
/ 17 февраля 2020

Просто столкнитесь с этим после того, как мои развертывания по необъяснимым причинам начали давать сбои после нескольких успешных.

Остановка герою от кеширования node_modules, похоже, сделала мой трюк.

heroku config:set NODE_MODULES_CACHE=false

Тогда git push heroku master

У меня нет package-lock.json совершенного после того, как услышал, что Героку плохо ладит с локфайлами, но спрашивает себя, не в этом ли проблема.

0 голосов
/ 17 февраля 2020

В разделе scripts в package.json, удерживайте только клавишу start и удаляйте другие.

Ваш scripts в package.json должен быть,

"scripts": {
    "start": "node server.js"
  },

Также перед развертыванием создайте приложение реакции вручную.

Heroku испортил все эти build сценарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...