2016-08-26 76 views
0

我在npm文檔上閱讀過,您不能使用本地安裝軟件包的bin腳本。如何使bin腳本可用於本地安裝的npm軟件包

那麼,如何在本地安裝gulp作爲bin命令啓動? 什麼使它在本地安裝時可用,我回顧了gulppackage.json和bin腳本,我沒有找到任何答案。

+0

請註明了一個問題,回答了您的問題就解決了。否則,讓我們知道什麼還沒有工作。 – Cyril

回答

0

From NPMJS documentation:

要使用此,在你的package.json這是命令名稱的地圖到本地文件名提供一個倉場。在安裝時,npm會將該文件符號鏈接到用於全局安裝的前綴/ bin中,或者將./node_modules/.bin/用於本地安裝。

所以,你的本地安裝的軟件包中的二進制文件是可執行這樣

./bin/node_modules/.bin/the_binary 

這是,如果你想直接啓動二進制文件。或者,如在the scripts part of the documentation:

指定除了外殼的預先存在的PATH,NPM運行增加了node_modules/.bin文件提供給腳本的路徑。

因此,你可以簡單的寫像

scripts: { 
    "build": "the_binary" 
} 

包裝腳本,並打電話給你這樣的腳本

npm run build 

獎金

由於[email protected]的.0,執行scr時可以使用自定義參數IPTS。特殊選項 - 由getopt用於分隔選項的結尾。故宮將通過之後的所有參數的 - 直接到你的腳本:

npm run test -- --grep="pattern" 
+0

因此,我無法在本地安裝一個軟件包(例如gulp),並且在沒有全局安裝的情況下運行bin命令? 原因我已經在本地安裝了Gulp,我可以運行'gulp default' bin命令,而不必在全局安裝'Gulp'。 這個問題可能是在我的bash_profile中...我不知道爲什麼我可以運行Gulp,但沒有我的自定義bin命令沒有全局安裝和您鏈接的文檔似乎說這是完全正常的。 – Jordan

+0

不,你不應該這樣做。您可以運行'npm list -g'來查看全局安裝了哪些軟件包,以及'哪個gulp'來查看二進制文件所在的位置。 – Cyril

+0

我確認,問題出自我的bash_profile ...非常感謝您的時間! – Jordan

相關問題