У меня есть приложение nodejs, опубликованное внутри Heroku.Все это работало, но через некоторое время без изменений, сегодня мне пришлось опубликовать новую функцию, которая включает в себя обновления из некоторых пакетов узлов, и, как всегда, я только что сделал git push heroku master
, чтобы опубликовать эти изменения.
Но зданиеэто всегда не дает мне следующую ошибку:
remote: -----> Node.js app detected
remote:
remote: -----> Creating runtime environment
remote:
remote: NPM_CONFIG_LOGLEVEL=error
remote: NPM_CONFIG_PRODUCTION=false
remote: NODE_ENV=production
remote: NODE_MODULES_CACHE=false
remote: NODE_VERBOSE=false
remote:
remote: -----> Installing binaries
remote: engines.node (package.json): 8.11.1
remote: engines.npm (package.json): 5.6.0
remote:
remote: Resolving node version 8.11.1...
remote: Downloading and installing node 8.11.1...
remote: npm 5.6.0 already installed with node
remote:
remote: -----> Restoring cache
remote: Caching has been disabled because NODE_MODULES_CACHE=false
remote:
remote: -----> Prebuild
remote: Running heroku-prebuild
remote:
remote: > my-api@0.0.3 heroku-prebuild /tmp/build_4bf4fa86ec647a2cc30bb6373298f732
remote: > npm install --only=dev
remote:
remote:
remote: > husky@2.5.0 install /tmp/build_4bf4fa86ec647a2cc30bb6373298f732/node_modules/husky
remote: > node husky install
remote:
remote: module.js:549
remote: throw err;
remote: ^
remote:
remote: Error: Cannot find module 'cross-spawn'
remote: at Function.Module._resolveFilename (module.js:547:15)
remote: at Function.Module._load (module.js:474:25)
remote: at Module.require (module.js:596:17)
remote: at require (internal/module.js:11:18)
remote: at Object.<anonymous> (/tmp/build_4bf4fa86ec647a2cc30bb6373298f732/node_modules/execa/index.js:4:20)
remote: at Module._compile (module.js:652:30)
remote: at Object.Module._extensions..js (module.js:663:10)
remote: at Module.load (module.js:565:32)
remote: at tryModuleLoad (module.js:505:12)
remote: at Function.Module._load (module.js:497:3)
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 1
remote: npm ERR! husky@2.5.0 install: `node husky install`
remote: npm ERR! Exit status 1
remote: npm ERR!
remote: npm ERR! Failed at the husky@2.5.0 install script.
remote: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
remote:
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR! /tmp/npmcache.s1wgX/_logs/2019-06-29T14_51_08_120Z-debug.log
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 1
remote: npm ERR! my-api@0.0.3 heroku-prebuild: `npm install --only=dev`
remote: npm ERR! Exit status 1
remote: npm ERR!
remote: npm ERR! Failed at the my-api@0.0.3 heroku-prebuild script.
remote: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
remote:
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR! /tmp/npmcache.s1wgX/_logs/2019-06-29T14_51_08_638Z-debug.log
remote:
remote: -----> Build failed
remote:
remote: We're sorry this build is failing! You can troubleshoot common issues here:
remote: https://devcenter.heroku.com/articles/troubleshooting-node-deploys
remote:
remote: If you're stuck, please submit a ticket so we can help:
remote: https://help.heroku.com/
remote:
remote: Love,
remote: Heroku
remote:
remote: ! Push rejected, failed to compile Node.js app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to my-api-api-staging.
Некоторые соображения
- Я всегда был
npm install --only=dev
, потому что я хочу! - I 'я не использую пакет
cross-spawn
- Внутри пакета
husky
ничего нет о cross-spawn
- Я пытался добавить
cross-spawn
, но ошибка продолжает появляться - NODE_MODULES_CACHE = false // никогда не менялся и всегда работал
- NODE_ENV = production // никогда не менялся и всегда работал
После многих сборок, пытающихся сделать эту работу (и до сих пор),Я замечаю это
- Мой текущий package.json
"version": "0.0.7",
и Heroku показывает my-api@0.0.3
- Я попытался изменить
heroku-prebuild
на что-то другое, а Heroku показывает Running heroku-prebuild... npm install --only=dev
, всегда.
Итак, я думаю, это какой-токеша, верно?!
Что может происходить?