如何在devDependencies中添加somthing后阻止yarn运行package.json脚本?

时间:2018-04-03 22:31:45

标签: npm yarnpkg package-managers

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

起初我很生气,所以我用其他内容重命名了"start",但现在它在"build"命令之后运行add ...

有没有办法阻止纱线在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"
  }

注意:我为有兴趣的人开了一个问题,因为它似乎特别值得注意^ 0.9.0 @atom/watcher problem #20

2 个答案:

答案 0 :(得分:1)

自从我通过NPM切换到Yarn以来,我也一直遇到这个问题。似乎,当被赋予未知命令时,yarn会在package.json脚本中搜索同名的一个。

另外,由于某种原因,yarn在指定的here on npm之上运行了过多的其他生命周期脚本。

我有三个剧本;构建,更新和准备。将构建重命名为babel使其无法运行。将更新重命名为子模块可停止该操作。重命名为更新和传输做好了阻止。

所以...暂时选择一个更复杂的名称,它将停止运行。

我意识到这不是完全 您的问题的答案,我将在其GitHub上提交有关禁用此功能的问题。

答案 1 :(得分:1)

您有--ignore-scripts标志。

来自yarn add --help

--ignore-scripts       don't run lifecycle scripts

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

您可以使用yarn add --help找到更多内容。

这是在纱线1.7.0上的。