2017-01-23 63 views
0

我在全球安裝一個節點模塊,比如說grunt模塊。爲什麼我可以按名稱運行全局安裝的節點模塊?

npm install -g grunt

它安裝在%APPDATA%\npm\node_modules\grunt:我通過安裝它。

然後,我可以在命令行中運行它,就像grunt --version。這是如何發生的?我的意思是,爲什麼我可以直接使用grunt作爲命令?

順便說一句,我正在使用Windows。我通過安裝程序.msi來安裝NodeJS。

回答

2

你是不是真的運行grunt包作爲一個整體的命令。

對此的設置開始於grunt's package.json。在這裏,它的名稱與包裝相同,爲specified a bin script

"bin": { 
    "grunt": "bin/grunt" 
}, 

當你install the package globally,NPM會爲每個bin腳本可執行文件(可以有多個每包),以在系統的路徑中的目錄,允許一個命令行找到他們,當你鍵入命令。

當您運行grunt時,它是從安裝它的目錄運行node bin/grunt的快捷方式,傳遞您在其之後提供的任何參數。

+1

我看到'%APPDATA%\ npm'中有一個'grunt.cmd',它已被添加到系統路徑中。所以當我在命令行輸入'grunt'時,這個批處理文件將被調用。 –

相關問題