2016-08-08 84 views
2

我正在寫一構建腳本並執行類似的命令:只有在尚未安裝的情況下,如何全局安裝npm軟件包?

  • npm install bower -g
  • npm install gulp -g

安裝這些包大約需要30-60秒,我的機器上,即使他們已經安裝(例如,從以前的構建腳本運行安裝)。

我想有可能是檢測是否涼亭一飲而盡已安裝,在這種情況下跳過安裝在生成過程中,以節省時間的方式。

是這樣的可能嗎?我會怎麼做?

我使用Windows和PowerShell,但我想在bash一些解決方案或許可以端口到Windows ...

+0

不是你的問題的直接答案,但它不應該花30-60秒,如果他們已經在你的機器上,除非它試圖確定版本匹配。如果您明確了package.json和bower.json中的版本,則不需要花費時間來訪問註冊表以查看是否有更新的版本可用。 – Paul

+0

@Paul:謝謝你的迴應。我認爲package.json並未在全局安裝中使用。我其實並不認爲我的package.json文件中列出了bower。此外,bower.json與此無關,因爲所有這些都是npm安裝的... –

+0

好的,我完全誤讀了,謝謝。所以,你說的.json文件沒有被用於全局安裝,對不起。也就是說,我的評論是關於在你運行安裝的命令中使用特定版本的。 – Paul

回答

2

Win7上+,你可以使用where <command>例如

@echo off 
where gulp > nul 
if %ERRORLEVEL% GEQ 1 (npm i gulp -g) else (echo Gulp already installed) 
+0

謝謝,效果很好。當使用PowerShell時,還有一個使用'Get-Command'的替代方法。 –

相關問題