是否有相当于"npm重复数据删除"的纱线?

The*_*ith 22 npm yarnpkg

刚试过Yarn,确实它速度很快.在yarn加载的控制台中运行后package.json,它安装了所有内容.然后我开始npm dedupe期待没有什么事情发生,因为纱线是如此优化,但它删除了大量的东西.有一些纱线相当于npm dedupe

加成:

正如我在下面的评论中所指出的,我认为也许yarn install --flat可能是npm dedupe等同的,因为Yarn文档将其描述为"安装一个且只有一个版本的软件包".所以我一起玩--flat,有几件事需要注意:

  1. 当树导致多个版本的请求时,它将提示您选择要安装的软件包版本.我可以想象这对于大型项目来说是一项艰巨的任务.我刚刚为我提示的每个软件包选择了最新版本,您可以想象,尝试运行该应用程序会导致cannot find module错误.
  2. 我做了一个npm dedupe 跑了yarn install --flat,它仍然导致了大量的删除.这对我来说是一个惊喜.

所以我认为它npm dedupe正在做一些其他的魔术,我只是对我不需要关注的过程天真.也许最好只留下树而忘记--flatdedupe完全忘记.

lob*_*ati 5

即使现在,Yarn 似乎也没有在最小化重复依赖方面发挥最大作用。运行yarn --flat会强制依赖项只有一个版本,即使它们可能不兼容,因此这并不理想。您可以使用该yarn-deduplicate包来最大程度地减少重复项的数量,同时在没有重叠要求的情况下仍然允许一些重复项。yarn-deduplicate还有一个--fail选项将返回非零(失败)状态。这对于在 CI 上运行非常有用,可以确保任何修改依赖项的人都不会引入新的重复项。


Pat*_*ick -1

引用自 Yarn 文档:

\n\n
\n

不需要重复数据删除命令。\xe2\x80\x99。yarn install已经进行了重复数据删除。

\n
\n\n

https://yarnpkg.com/lang/en/docs/cli/dedupe/

\n

  • `yarn install` 似乎没有重复数据删除。也就是说,并非在所有情况下都是如此。因此,“yarn install”要么存在错误,要么根本不起作用。我运行了“yarn install”,然后运行了“yarn check”,并收到了以下消息:“警告“chokidar#fsevents#node-pre-gyp@^0.10.0”可能会从“0.10.3”到“node-pre-”进行重复数据删除。 gyp@0.10.3"` (20认同)
  • 您应该报告该行为,因为文档明确指出不需要重复数据删除。 (3认同)