我正在尝试编写一个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/