我想使用 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 中看到。
如果有人能指出我正确的方向,我将不胜感激!!!
谢谢
詹姆斯
最佳答案
放置到 package.json
的 bin
键中的任何键/值对都将被符号链接(symbolic link)到 NPM bin-dir 路径中。
key
是您希望命令命名的内容,value
部分是您的包中应运行的脚本。
因此,在您的示例中,当 npm install
完成运行时,它将创建一个从 [package-install-path]/bin/firebase
到 的符号链接(symbolic link)/usr/local/bin/firebase
(或者 NPM 使用的任何 bin 目录前缀(npm bin -g
会告诉你它在哪里)。
如果您只有一个脚本,您也可以这样做:
{
"name": "my-awesome-package",
"bin": "./myscript.sh"
}
它会将 myscript.sh
符号链接(symbolic link)到 my-awesome-package
尽管您应该谨慎包含 bash 脚本,因为它们无法在 Windows 上运行。
这里是docs为此。
关于node.js - 使用 NPM 打包和分发 Bash 脚本,以便使用 npm install 全局安装到开发人员工作站的路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33306160/