在 devDependencies 中添加内容后如何防止 yarn 从 运行 a package.json 脚本?

How to prevent yarn from running a package.json script after add somthing in the devDependencies?

如果我 运行 yarn add <dependency> -Dyarn 将在我的 package.json 中安装依赖项和 运行 任务。它将 运行 "start" 脚本。

起初我很生气,所以我用别的东西重命名了 "start",但现在 运行 "build"add 命令之后...

有没有办法防止 yarn 运行在 add 之后执行任何命令?

这是我在 package.json 中的当前脚本:

  "scripts": {
    "clean": "mkdir -p lib && rm -r lib",
    "build": "yarn clean && tsc",
    "test": "tsc && mocha -c",
    "test:watch": "tsc-then -- mocha -c"
  }

note: 我给有兴趣的人开了个issue,好像是watchy^0.9.0特有的@atom/watcher problem #20

自从我通过 NPM 切换到 Yarn 后,我也遇到了这个问题。似乎 yarn 在给出未知命令时会在您的 package.json 脚本中搜索具有相同名称的命令。

此外,出于某种原因,yarn 运行 在指定的 here on npm 之上添加了过多的额外生命周期脚本。

我有三个脚本;构建、更新和准备。将构建重命名为 babel 阻止了它成为 运行。重命名子模块的更新停止了。并重命名 prepare to update-and-transpile 停止了它。

所以...暂时选择一个更复杂的名称,它不再是 运行。

我知道这不完全是您问题的答案,我将向他们GitHub提交关于禁用此功能的问题。

你有 --ignore-scripts 标志。

来自yarn add --help

--ignore-scripts       don't run lifecycle scripts

yarn add --ignore-scripts -D package-name-1 ...

您可以通过 yarn add --help 找到这个以及更多内容。

这是在 Yarn 1.7.0 上。