是否有一种纱线等价物用于;npm重复数据消除“;?

是否有一种纱线等价物用于;npm重复数据消除“;?,npm,yarnpkg,Npm,Yarnpkg,刚试过纱线,确实非常快。在控制台中使用加载的package.json运行warn后,它安装了所有内容。然后,我运行了npm重复数据消除,希望不会发生什么事情,因为纱线经过了如此优化,但它删除了大量内容。是否有与npm重复数据消除相当的纱线 添加: 正如我在下面的评论中所指出的,我认为也许warn install--flat可能是一种npm重复数据消除的等效产品,因为它被描述为“只安装一个包的一个版本”。所以我玩了--flat,有几件事需要注意: 当树导致对多个版本的请求时,它将提示您选择要安装的

刚试过纱线,确实非常快。在控制台中使用加载的
package.json
运行
warn
后,它安装了所有内容。然后,我运行了
npm重复数据消除
,希望不会发生什么事情,因为纱线经过了如此优化,但它删除了大量内容。是否有与npm重复数据消除相当的纱线

添加:

正如我在下面的评论中所指出的,我认为也许
warn install--flat
可能是一种
npm重复数据消除
的等效产品,因为它被描述为“只安装一个包的一个版本”。所以我玩了
--flat
,有几件事需要注意:

  • 当树导致对多个版本的请求时,它将提示您选择要安装的软件包版本。我可以想象这是一个更大的项目地狱般的任务。我刚刚为我被提示输入的每个软件包选择了最新版本,正如您所能想象的,尝试运行该应用程序会导致
    找不到模块
    错误
  • 在执行了
    纱线安装--flat
    之后,我运行了
    npm重复数据消除
    ,它仍然导致了大量的删除。这对我来说是个惊喜

  • 所以我认为,
    npm重复数据消除
    在幕后发挥了一些其他的魔力,我只是对我不需要关心的流程感到幼稚。也许最好不要去管树,完全忘记
    --flat
    重复数据消除

    引自纱线文档:

    不需要重复数据消除命令<代码>纱线安装将已删除重复数据


    即使是现在,纱线似乎也不能最大限度地减少重复依赖。运行
    warn--flat
    会强制依赖项只有一个版本,即使它们可能不兼容,所以这并不理想。您可以使用包来最小化重复的数量,同时在没有重叠需求的情况下仍然允许一些重复<代码>纱线重复数据消除还有一个
    --fail
    选项,该选项将返回非零(失败)状态。这对于在CI上运行非常有用,以确保修改依赖项的任何人都不会引入新的重复项。

    请阅读标记说明。非常确定这是不可能的,因为这将导致非确定性树。@FelixKling Oops!感谢您的编辑。@WillemD'Haeseleer因此,对于Thread,重复数据消除是否变得无关紧要?Thread安装是否自动进行重复数据消除<代码>npm重复数据消除执行相同的操作,并删除不相关的包
    --flat
    强制您选择每个软件包在任何情况下都应解析为哪个版本,只留下一个软件包。
    纱线安装
    似乎不会进行重复数据消除。也就是说,并非所有情况下都如此。因此,要么是
    纱线安装中存在缺陷,要么就是根本不起作用。我运行了
    纱线安装
    ,然后执行了
    纱线检查
    ,收到了以下消息:
    警告“chokidar#fsevents#node pre gyp@^0.10.0”可以从“0.10.3”重复到“node pre”-gyp@0.10.3“
    您应该报告该行为,因为文档明确指出不需要重复数据消除。