【发布时间】:2018-06-22 22:17:00
【问题描述】:
我有一个包,它本身在其package.json 中有一个脚本,我希望能够在我的顶级项目中运行该脚本。这个包是我的顶级项目依赖项之一。我正在寻找一种直接或间接调用依赖包脚本的方法。
假设我正在使用的模块名称为foo,而我要运行的脚本为updateFooData。
我尝试使用语法 npm run-script <package> <...> 来运行它,但这似乎是不推荐使用的功能,因为我在当前的 official documentation 中找不到它,但我在其他(非常旧的)搜索结果中看到了它。
npm run-script foo updateFooData
# npm ERR! missing script: foo
我还研究了 npm api,虽然 npm.commands.run-script(args, callback) 会做我想做的事,但我不知道如何将模块加载到 npm 中
{
...
"scripts":{
"foo:updateFooData": "node --eval \"... ??; npm.commands.run-script('updateFooData', callback)\""
}
}
npm run foo:updateFooData
# Obviously fails
到目前为止,我发现唯一可行的方法是将 CD 放入子模块目录并从那里运行 npm。这不是我的首选解决方案。
cd node_modules/foo
npm run updateFooData
【问题讨论】:
标签: npm