2017-01-23 24 views
1

運行npm install --no-optional時,每次完成需要大約3分鐘。它安裝〜200MB的文件。我想加快構建過程,但我找不到任何方法來加快構建過程。每次運行時npm安裝非常慢

npm install默認緩存依賴(像任何其他像樣的工具例如mavensbtnuget)默認?如果是的話,它不應該比那更快嗎?如果不是,那麼爲什麼以及如何解決這個問題?

我發現npm-cache軟件包,但似乎.tar所有的依賴關係,當它們都沒有改變時,npm-cache將重新使用tar文件。這樣做的缺點是,只要發生了一些小的依賴關係變化,它就無法重用緩存(從我的理解中)。

有沒有什麼好的資源,爲什麼這是緩慢的,以及如何加快它的緩存如何與一般npm工程?我用過的其他工具(sbt,maven,nuget)要快得多,因此我對npm的預期也很高。

我看到的另一個選項是npm install -g,但它似乎不是解決任何問題,因爲它是meant to be used for installing some cli tools像grunt,npm-cache等,因爲它將它們添加到路徑中。所以這絕對不能解決問題。

npm -v: 4.0.5 
node -v: 6.8.1 
+1

不是一個真正的答案,但[紗線](https://yarnpkg.com/)是一個偉大的,更快的替代npm – nem035

+0

另一種選擇是pnpm –

+0

這幫助我從2:30到30秒 - http ://stackoverflow.com/a/42124305/702347 – Ondra

回答

1

與節點的問題是,從SBT背景,其中SBT使用本地緩存常春藤對緩存依賴未來,我期望從節點相同的行爲。因此,至少達到V 5.0,Node沒有適當的依賴性緩存機制,因此您每次使用乾淨的node_modules文件夾執行node install時,基本上都需要重新下載所有依賴項。

有人開發了一些工具來解決這個問題,但沒有一個能令人滿意。

但是看起來這可能已經在節點V 5.0中修復了一些緩存策略,因此如果您有類似的問題,請查看第5版的更改。