我在全局安装了一个节点模块,让我们说grunt
模块。我安装它:
npm install -g grunt
已安装在%APPDATA%\npm\node_modules\grunt
。
然后我可以在命令行中运行它,比如grunt --version
。这是怎么发生的?我的意思是,为什么我可以直接使用grunt
作为命令?
顺便说一下,我正在使用Windows。我通过.msi
安装程序安装NodeJS。
答案 0 :(得分:2)
你并没有真正从命令中运行grunt
包。
此设置从grunt
's package.json
开始。在那,它的specified a bin
script与包名称相同。
"bin": {
"grunt": "bin/grunt"
},
当您install the package globally时,npm为每个bin
脚本添加一个可执行文件(每个包可以有多个)到系统路径中的目录,允许命令行查找键入命令时它们。
当您运行grunt
时,它是从安装它的目录运行node bin/grunt
的快捷方式,传递您在其后提供的任何参数。