node.js - 使用 NPM 打包和分发 Bash 脚本,以便使用 npm install 全局安装到开发人员工作站的路径中

标签 node.js bash rest automation npm

我想使用 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.jsonbin 键中的任何键/值对都将被符号链接(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/

相关文章:

bash "wc -l"如果调用或通过 tee 命令输出不同

php - Phil Sturgeon 的 REST API 总是返回 : status:0, 错误:未知方法

python - 发送curl请求时使用bcrypt driver.db进行Eve身份验证错误

javascript - 当 Ajax 使用长轮询时,如何更新 AngularJS 中的模型?

shell - 如何通过 NodeJS 子进程运行命令?

bash - 为已知 PID 的不同进程在 bash 中设置陷阱

Controller 参数的 Spring 注释包装器

node.js - 如何对连接到 mongo 的方法进行单元测试,而不实际连接到 mongo?

Node.js async.forEach : Cannot read property 'value' of undefined

linux - 可以编写脚本在本地机器上打开多个终端并通过 ssh 连接到不同的服务器吗?