2012-10-15 7 views
5

Running git push heroku master zawsze wyzwala krok, który podpowiada:Skip „Instalowanie zależności z npm” krok po pcha aplikację node.js do Heroku

Instalacja zależności z KMP

tym etapie obciążenia i ponownie instalować wszystkie zależności znowu, nawet jeśli już istnieje. Jest to bardzo czasochłonne i czasami pomijam ten krok, gdy wdrażam, ponieważ wiem, że zależności są takie same.

Czy są jakieś polecenia lub opcje, które to umożliwiają?

+2

Niestety, jeśli przyjrzeć się [buildowi Heroku dla node.js] (https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/compile#L171), nie ma pojawia się opcja pominięcia 'npm install'. Zawsze uruchamia 'npm install --production', po którym następuje' npm rebuild'. Możliwe jest jednak utworzenie twojego [własnego buildpacka na Heroku] (https://devcenter.heroku.com/articles/buildpacks), który określa inne zachowanie dla 'npm install'. – smithclay

Odpowiedz

0

próby usunięcia

node_modules

np od ciebie .gitignore

1

Jego dawna skoro pytasz to pytanie, teraz Heroku buildpack bufory node_modules, więc czas instalacji będzie znacznie szybszy.

Jeśli jednak nadal chcesz zablokować npm install, oto jedno rozwiązanie.

Od kiedy to piszę, domyślny pakiet buildowy Heroku nie pozwala na całkowite pominięcie instalacji npm. można zobaczyć w pliku dependencies.sh, linia ta będzie zawsze uruchamiane:

npm install --unsafe-perm --userconfig $build_dir/.npmrc 2>&1 

Jeśli jednak utworzyć plik o nazwie .npmrc w folderze projektu, o następującej treści:

dry-run 

Spowoduje NPM zainstalować, aby nie modyfikować istniejącego katalogu node_modules.

Należy pamiętać, że zmiana ta będzie również zastosowanie do polecenia npm prune który biegnie Heroku, ale NIE będą miały zastosowanie do komendy npm rebuild (co jest chyba w porządku).