【问题标题】:Yarn "add webpack" removes other packages?纱线“添加 webpack”删除其他包?
【发布时间】:2017-05-31 16:26:58
【问题描述】:

我要在这里安静地发疯。我的包需要 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 作为“外部包”删除,反之亦然。

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

【问题讨论】:

  • 删除 node_modules 并运行 yarn?它似乎对我来说都很好。我的整个 package.json 是 { "devDependencies": { "ts-loader": "^2.1.0", "webpack": "^2.6.1" } }
  • 在我的 package.json (dev) 中编辑
  • 我发生了一些奇怪的事情。我发现那是我做了yarn add webpack ts-loader --dev 我会得到两个,但如果我再做yarn upgrade 一个会消失。

标签: webpack yarnpkg


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2020-07-31
    • 2022-08-16
    相关资源
    最近更新 更多