我有一个 bash 脚本,用于将模块发布到 npm:
publish.sh
由于我仍在大量调整此脚本,因此每次更改它时,我都需要对我管理的每个 npm 模块中的每个副本进行更改。
有没有办法将其作为依赖项包含在我的 package.json 文件中,以便我只需要运行
npm update; npm install
即可更新它?也许 sh 文件需要由一些包装器 javascript 或类似的东西来执行..?
“脚本”:{ “开始”:“sh ./scripts/publish.sh”, ... }
如果需要访问单个项目中的脚本,可以将其放在
"scripts"
中的package.json
对象中。
"scripts": {
"publish": "/bin/sh publish.sh"
}
上面可以用
npm run publish
运行。有关更多信息,请参阅 npm run-script
文档。
如果您真的想将 shell 脚本添加为可以使用
npm install
安装(从公共注册表或私有注册表)的依赖项,那么您绝对可以做到这一点。 npm
存储库中提供了许多非 JavaScript 可执行文件。您需要为依赖项创建一个 package.json
并使用 "bin"
条目指定 shell 脚本的位置。
如果您遇到困难,可以查看一个示例包:notes.sh。 源代码位于 GitHub。查看
package.json
以了解他们如何指定要在 "bin"
条目中运行的脚本。不过,您仍然需要在其他项目中创建一个 "script"
条目来运行已安装的 shell 脚本(或者您可以将其作为 npm 挂钩运行),除非您手动运行它或在代码中生成子进程或者什么的。
几年后回答我自己的问题: 我正在寻找的是能够将以下内容添加到我的 package.json 文件中:
"name": "your-package-name",
"version": "1.0.0",
"bin": "./path/to/your-script.sh"
或
"bin": {
"command-name-1": "./path/to/your-first-script.sh",
"command-name-2": "./path/to/your-second-script.sh"
}
这样它们就会被安装到
node_modules
下的.bin文件中。
我还没有通过引用版本控制的 .sh 文件的 URI 来尝试此操作,但这将是我正在寻找的理想流程。