在工作区上下文中运行根级 npm 脚本

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

我在根级 package.json 中定义了一个脚本:

{
  "workspaces": [
    "packages/*"
  ],
  "scripts": {
    "clean": "rm -rf lib dist"
  },
  "private": true
}

我想在

packages/example
包的上下文中运行此脚本,它没有定义
clean
脚本
。 (我想在我的所有工作区中重复使用这个脚本

我尝试运行

npm -w packages/example run clean
npm run clean -w packages/example
但这些命令在
clean
中搜索
packages/example/package.json
脚本:

npm ERR! Error: Missing script: "clean"

需要明确的是,我想通过在工作区根目录运行脚本来删除

lib
中的
dist
packages/example
文件夹。

注意:我使用这个干净的脚本作为示例。真正的脚本更复杂,我不想在所有工作区中重复它们

npm npm-scripts npm-workspaces
1个回答
0
投票

我发现的唯一解决方法是使用

--include-workspace-root
选项调用它,其中包括工作区根上下文。问题是它还会尝试在当前包上下文中运行脚本,因此如果您在
clean
包中定义了
example
脚本,它也会运行。如果它没有脚本,尽管它会引发错误,幸运的是它可以被
--if-present
标志抑制。

npm run --include-workspace-root --if-present clean
© www.soinside.com 2019 - 2024. All rights reserved.