2016-04-25 187 views
0

我的項目參考文獻mocha,phantomjs等,在npm install期間需要花費很多時間下載。這在我的本地機器中不是問題,因爲我只下載它們一次,除非我決定手動升級它們,否則可以永久使用它們。如何設置npm不安裝全局安裝的軟件包?

然而,在我CI機,我jenkins服務器需要每次我做了git commitgit push做的測試和部署時間下載。

所以我可以通過設置npm不要從遠程服務器下載這些慢速軟件包來加速該進程?相反,從本地緩存安裝它們或不安裝它們,如果我全球安裝它們?

任何人都知道如何配置?

回答

0

您可以在package.json中的devDependencies中指定要在本地使用的所有包,然後運行npm install -d將安裝這些包,而不是主要依賴項。

+0

是的,我把它們放在'devDependencies'中。頭疼的是'npm install'這些軟件包非常慢,所以我希望我可以安裝一次,然後我可以永遠使用它們。 –

1

found some packages可能會有所幫助

  • npm-install-changed運行npm install只有package.jsondevDependenciesdependencies的內容發生了變化,請注意,它假定node_modules仍然存在跨不同的建造這可能不是,如果有幫助您的CI服務器始終從頭開始
  • npm-install-cache運行npm install然後將您當前的node_modules文件夾(\tmp中的某處)複製,如果喲ü再次調用腳本將驗證任何修改的package.json(而不是在devDependenciesdependencies進行變化的),如果它沒有那麼改變它會複製存儲在\tmpnode_modules文件夾,我看到的唯一限制是它不是跨平臺和緩存文件夾是\tmp這是在重新啓動時刪除(或者即使被處理完畢,也許!)

第二包可能無法工作,因爲它是,但它似乎是一個好地方開始:)