Реагируйте, когда приложение получает «npm ERR!» на сервере Heroku, тем временем все в порядке при запуске на локальном

#node.js #reactjs #heroku #npm

Вопрос:

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

npm err! Вероятно, это не проблема с npm. Вероятно, выше есть дополнительный вывод журнала.

Я много просмотрел разные вопросы и застрял. Я делюсь своим пакетом.json ниже, возможно, что-то не так с зависимостями.

Кстати, у меня нет никакого вызова API, http-запроса или чего-то еще в моем приложении. Все это чисто статические страницы.

пакет.json

 {
  "name": "----",
  "version": "1.0.0",
  "description": "----",
  "author": {
    "name": "---- LLC"
  },
  "contributors": [
    {
      "name": "-----"
    }
  ],
  "homepage": ".",
  "copyright": "Copyright 2021 --- LLC",
  "private": true,
  "repository": {
    "type": "git",
    "url": "----"
  },
  "dependencies": {
    "@coreui/chartjs": "^2.0.0",
    "@coreui/coreui-pro": "^3.4.0",
    "@coreui/icons": "^2.0.0-rc.0",
    "@coreui/icons-react": "^1.0.2",
    "@coreui/react": "^3.4.0",
    "@coreui/react-chartjs": "^1.0.1",
    "@wojtekmaj/enzyme-adapter-react-17": "^0.3.2",
    "bootstrap-icons": "^1.5.0",
    "classnames": "^2.2.6",
    "enzyme": "^3.11.0",
    "node-sass": "^4.14.1",
    "react": "^17.0.1",
    "react-app-polyfill": "^2.0.0",
    "react-dom": "^17.0.1",
    "react-grid-layout": "^1.2.0",
    "react-quill": "^2.0.0-beta.2",
    "react-redux": "~7.2.2",
    "react-router-dom": "^5.2.0",
    "react-select": "^3.1.1",
    "redux": "~4.0.5",
    "sass": "^1.37.5"
  },
  "devDependencies": {
    "auto-changelog": "2.2.0",
    "mutationobserver-shim": "^0.3.7",
    "react-scripts": "^4.0.1"
  },
  "scripts": {
    "start": ""react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 10",
    "not op_mini all"
  ],
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.{js,jsx}",
      "!**/*index.js",
      "!src/serviceWorker.js",
      "!src/polyfill.js"
    ]
  }
}
 

введите описание изображения здесь

и вот он-журнал отладки

 0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ]
2 info using npm@6.14.14
3 info using node@v14.17.5
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle joobla-web@0.1.0~prestart: joobla-web@0.1.0
6 info lifecycle joobla-web@0.1.0~start: joobla-web@0.1.0
7 verbose lifecycle joobla-web@0.1.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle joobla-web@0.1.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/alizeynalov/joobla-web/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alizeynalov/joobla-web/node_modules/.bin
9 verbose lifecycle joobla-web@0.1.0~start: CWD: /Users/alizeynalov/joobla-web
10 silly lifecycle joobla-web@0.1.0~start: Args: [ '-c', 'react-scripts start' ]
11 info lifecycle joobla-web@0.1.0~start: Failed to exec start script
12 verbose stack Error: joobla-web@0.1.0 start: `react-scripts start`
12 verbose stack spawn ENOENT
12 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18)
12 verbose stack     at ChildProcess.emit (events.js:400:28)
12 verbose stack     at maybeClose (internal/child_process.js:1055:16)
12 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
13 verbose pkgid joobla-web@0.1.0
14 verbose cwd /Users/alizeynalov/joobla-web
15 verbose Darwin 20.6.0
16 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
17 verbose node v14.17.5
18 verbose npm  v6.14.14
19 error code ELIFECYCLE
20 error syscall spawn
21 error file sh
22 error errno ENOENT
23 error joobla-web@0.1.0 start: `react-scripts start`
23 error spawn ENOENT
24 error Failed at the joobla-web@0.1.0 start script.
24 error This is probably not a problem with npm. There is likely additional logging output above.
25 verbose exit [ 1, true ]
 

I think there is something going on with start script, but can’t figure out what is the problem.