我想用npm分发一些脚本,以便开发人员能够在他们的工作站上全局安装,然后在他们的开发工作流程中使用他们计算机上的脚本命令。
我无法弄清楚如何让npm实际将其包中的脚本添加到路径中。
我看到firebase工具在他们的package.json中有这个:
"preferGlobal": true,
"bin": {
"firebase": "./bin/firebase"
},
......但我无法弄清楚这与我的项目有什么关系。
我试图用npm分发的第一个项目是用于控制Belkin WeMo灯开关,它包括一个可执行的' wemo'以及一个包含的functions.inc.sh文件,可以看到@ https://github.com/agilemation/Belkin-WeMo-Command-Line-Tools.git
如果有人能指出我正确的方向,我们将非常感激!!!
谢谢,
詹姆斯
答案 0 :(得分:1)
放置在bin
的{{1}}键中的任何键/值对都将符号链接到NPM bin-dir路径中。
package.json
是您希望命名的命令,key
部分是您应该运行的包中的脚本。
Ergo,在您的示例中,当value
完成运行时,将创建从npm install
到[package-install-path]/bin/firebase
的符号链接(或NPM正在使用的任何bin目录前缀(/usr/local/bin/firebase
会告诉你这是什么)。
如果您只有一个脚本,您也可以这样做: { “名字”:“我很棒的包裹”, “bin”:“。/ myscript.sh” }
它将符号链接npm bin -g
添加到myscript.sh
虽然您应该警惕包含bash脚本,因为它们无法在Windows上运行。
以下是docs。