Yarn: 向 package.json 添加一个名为“install”的脚本会创建一个无限循环

创建于 2016-10-19  ·  3评论  ·  资料来源: yarnpkg/yarn

您是要请求一个 _feature_ 还是报告一个 _bug_?

漏洞

如果当前行为是错误,请提供重现步骤。

将此添加到您的package.json

  "scripts": {
    "install": "yarn install --ignore-optional",
  },

yarn install

目前的行为是什么?

> yarn install
yarn install v0.16.0
success Already up-to-date.
$ yarn install --ignore-optional
yarn install v0.16.0
success Already up-to-date.
$ yarn install --ignore-optional
yarn install v0.16.0
success Already up-to-date.
$ yarn install --ignore-optional
yarn install v0.16.0
success Already up-to-date.
$ yarn install --ignore-optional
Terminate batch job (Y/N)?
yarn install v0.16.0
Terminate batch job (Y/N)?
^C

什么是预期行为?

没有无限循环。 也许复制 Composer 所做的:发出此警告:

名为 install 的脚本将覆盖 Composer 命令并已被跳过

然后继续使用内置命令。

请提及您的 node.js、yarn 和操作系统版本。

节点:v6.3.1
纱线:0.16.0
操作系统:Win10周年

最有用的评论

老实说,这似乎是故意的行为,我认为我们不应该明确地做任何事情来检测yarn安装命令,因为我们不知道原始二进制文件的位置,并且任何检测都将是草率的。 install是一个有效的生命周期脚本钩子,我们正在正确执行它,没有任何东西被忽略。

所有3条评论

移动到#1374

老实说,这似乎是故意的行为,我认为我们不应该明确地做任何事情来检测yarn安装命令,因为我们不知道原始二进制文件的位置,并且任何检测都将是草率的。 install是一个有效的生命周期脚本钩子,我们正在正确执行它,没有任何东西被忽略。

@kittens我真的被你的回答弄糊涂了,直到我在这个

我实际上不知道install是一个特殊的东西,_应该_在yarn/npm install之后运行——我认为它只是一个常规脚本。 我不知道它会在yarn install之后自动触发; 我只是想通过yarn run install手动运行它。

在这种情况下,这确实很有意义。 抱歉@wyze@thejameskyle——感谢您认真对待我的问题报告,但我认为@kittens实际上就在这里。 这是我自己的误会造成的。 我认为您不需要尝试检测这种情况。

此页面是否有帮助?
0 / 5 - 0 等级