Yarn "add webpack" 删除其他包?

Yarn "add webpack" removes other packages?

我要悄悄地发疯了。我的包需要 webpack 和 ts-loader 来构建。

我做 yarn add webpack --dev 然后 webpack 在我的 node_modules 文件夹中。我现在 yarn add ts-loader --dev 并且 ts-loader 在那里,但是 webpack 不见了(尽管仍然显示在 package.json 中)!

如果我现在再次添加 webpack,ts-loader 消失了...这是怎么回事?

使用 --verbose 标志,我可以看到 webpack 正在删除 ts-loader 作为 'extraneous package',反之亦然。

我猜 yarn 已经把自己弄得非常混乱了。我如何清除它的所有本地状态并让它干净地下拉 package.json 中列出的包?

我意识到在添加时省略 --dev 标志,问题就消失了。

阅读文档和代码看来,如果环境 var NODE_ENV = production 那么 Yarn 将安装包及其要求作为 devDependency,但删除所有其他 devDependency 包。

这里有一个 Github 问题,建议对此进行修复。 https://github.com/yarnpkg/yarn/issues/4095