NPM脚本的NPM包

时间:2016-12-29 21:33:26

标签: javascript npm

我正在尝试编写一个npm包,它将特定的npm脚本添加到依赖它的package.json中。 npm package.json / script docs中的任何内容都没有让我远程关闭。

我基本上是想这样做:

  1. 我安装了一个npm包(称之为'cool-thing')
  2. cool-thing,通过安装,将npm脚本添加到我现有的package.json
  3. 我可以在命令行上调用cool-thing,它将执行package.json中指定的任何操作。
  4. 任何人都知道我该怎么做?

1 个答案:

答案 0 :(得分:1)

我假设你正在处理一个cool-parent包依赖于包cool-thing,因为你想运行cool-thing提供的可执行文件。

通常情况下,您需要手动修改cool-parent package.json以添加脚本:

"scripts": {
   "cool-thing": "cool-thing"
}

现在为了方便用户,您希望1)自动执行此修改。不仅如此,您希望2)在将软件包安装为依赖项后自动进行修改。

第2部分(cool-parent

的开发人员)存在一些缺点
  1. 可能不想添加脚本,
  2. 可能已经有一个名为cool-thing的脚本,
  3. 可能没有package.json
  4. ...
  5. 我认为在安装期间在包装本身之外进行修改会产生不良副作用。

    如果您仍想这样做,可以在cool-thing中使用postinstall脚本。如果有一个通过工作目录和npm提供的环境变量,你需要弄清楚父级package.json的位置。