我正在尝试编写一个npm软件包,该软件包将向它所依赖的任何package.json添加特定的npm脚本。 npm package.json /脚本文档中没有任何内容使我远程关闭。

我基本上是想这样做:


我安装了一个npm软件包(称为“ cool-thing”)
cool-thing通过安装将npm脚本添加到我现有的package.json中
我可以在命令行上调用cool-thing,它将执行package.json中指定的任何操作


有人知道我该怎么做吗?

最佳答案

我假设您正在使用依赖于软件包cool-parent的软件包cool-thing,因为您要运行cool-thing提供的可执行文件。

通常,您将手动修改cool-parent package.json以添加脚本:

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


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

第2部分(cool-parent的开发人员)有一些缺点


可能不想添加脚本,
可能已经有一个名为cool-thing的脚本,
可能没有package.json
...


我认为在安装过程中在软件包本身之外进行修改是不希望的副作用。

如果仍要执行此操作,则可以在postinstall中使用cool-thing脚本。如果存在一个通过工作目录存在的目录,或者npm提供的环境变量,则需要弄清楚父目录package.json的位置。

关于javascript - NPM脚本的NPM软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41387497/

10-11 16:56