我可以将 bash/sh 文件作为依赖项包含在 package.json 中吗?

问题描述 投票:0回答:3

我有一个 bash 脚本,用于将模块发布到 npm:

publish.sh
由于我仍在大量调整此脚本,因此每次更改它时,我都需要对我管理的每个 npm 模块中的每个副本进行更改。

有没有办法将其作为依赖项包含在我的 package.json 文件中,以便我只需要运行

npm update; npm install
即可更新它?也许 sh 文件需要由一些包装器 javascript 或类似的东西来执行..?

javascript bash npm sh
3个回答
0
投票

“脚本”:{ “开始”:“sh ./scripts/publish.sh”, ... }


0
投票

如果需要访问单个项目中的脚本,可以将其放在

"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 挂钩运行),除非您手动运行它或在代码中生成子进程或者什么的。


0
投票

几年后回答我自己的问题: 我正在寻找的是能够将以下内容添加到我的 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 来尝试此操作,但这将是我正在寻找的理想流程。

© www.soinside.com 2019 - 2024. All rights reserved.