【问题标题】:How to prevent yarn from running a package.json script after add somthing in the devDependencies?在 devDependencies 中添加内容后,如何防止纱线运行 package.json 脚本?
【发布时间】:2018-09-13 08:49:46
【问题描述】:

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

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

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

注意:我为感兴趣的人打开了一个问题,因为它似乎是特定于 watchy^0.9.0 @atom/watcher problem #20

【问题讨论】:

  • 你在 package.json 中定义了哪些脚本?

标签: npm yarnpkg package-managers


【解决方案1】:

你有 --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 上。

【讨论】:

    【解决方案2】:

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

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

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

    所以...暂时只取一个更复杂的名称,它就会停止运行。

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

    【讨论】:

    • 如果您提交了此问题,请您在此处分享链接吗?
    猜你喜欢
    • 1970-01-01
    • 2012-03-05
    • 2017-01-17
    • 2018-09-14
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多