Heroku, похоже, держит какой-то кеш при попытке собрать приложение - PullRequest
0 голосов
/ 29 июня 2019

У меня есть приложение 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.

Некоторые соображения

  1. Я всегда был npm install --only=dev, потому что я хочу!
  2. I 'я не использую пакет cross-spawn
  3. Внутри пакета husky ничего нет о cross-spawn
  4. Я пытался добавить cross-spawn, но ошибка продолжает появляться
  5. NODE_MODULES_CACHE = false // никогда не менялся и всегда работал
  6. NODE_ENV = production // никогда не менялся и всегда работал

После многих сборок, пытающихся сделать эту работу (и до сих пор),Я замечаю это

  1. Мой текущий package.json "version": "0.0.7", и Heroku показывает my-api@0.0.3
  2. Я попытался изменить heroku-prebuild на что-то другое, а Heroku показывает Running heroku-prebuild... npm install --only=dev, всегда.

Итак, я думаю, это какой-токеша, верно?!

Что может происходить?

...