2012-10-15 28 views
5

當「安裝與故宮依賴」一步運行git push heroku master始終觸發提示一步:跳過推的Node.js應用的Heroku

與故宮安裝依賴

這一步負載,並重新安裝所有的依賴關係甚至已經存在。這非常耗時,我想在部署時忽略這一步,我知道依賴關係是相同的。

有沒有這樣的命令或選項?

+2

不幸的是,如果你看看[Heroku buildpack for node.js](https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/compile#L171),那就沒有看起來不是跳過'npm install'選項。它總是運行'npm install --production',然後是'npm rebuild'。但是,可以在heroku上創建[自己的buildpack](https://devcenter.heroku.com/articles/buildpacks),它指定了'npm install'的不同行爲。 – smithclay

回答

0

嘗試刪除

node_modules

例如 從你的.gitignore

1

它一直既然你問了這個問題,現在的Heroku buildpack緩存node_modules,所以很長一段時間安裝時間會更快。

如果您仍然想阻止npm install,這裏有一個解決方案。

從我寫這篇文章開始,默認的Heroku構建包不允許完全跳過npm install。您可以在dependencies.sh文件中看到,這條線將始終運行:

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

但是,如果你創建一個項目文件夾名爲.npmrc與文件,內容如下:

dry-run 

這將導致NPM安裝以不修改您現有的node_modules目錄。

注意,這種變化也將適用於Heroku的運行npm prune命令,但將不會適用於npm rebuild命令(這可能是罰款)。