gpt4 book ai didi

npm - 如何防止在 node_modules 中嵌套 node_modules

转载 作者:搜寻专家 更新时间:2023-10-31 23:25:58 29 4
gpt4 key购买 nike

我已经创建了自己的 npm 包,我们称它为 XYZ,它在 package.json 文件中具有 @material-ui 依赖项。

当我在项目 A 中安装它时,我在 XYZ 文件夹中嵌套了 node_modules(所以它是 A\node_modules\XYZ\node_modules\@material-ui),但是当我在项目 B 中安装它时,我没有' 有嵌套的 node_modules 文件夹。项目 A 和 B 的 package.json 文件中都有相同版本的 @material-ui

如何强制我的 XYZ 包使用 A\node_modules 中的 @material-ui

最佳答案

直接在 node_modules 文件夹中有更少的嵌套文件夹和更多文件夹的缺点以及版本控制问题。

使用正确的 npm 版本

正确的 yarnnpm(即:npm v3)不应该有这样的结构问题。它应该尽可能地展平整个结构,并且如果版本与顶部的不兼容,则只有嵌套的 node_modules。

检查版本

因此,如果您让它在一个项目上正常运行而在另一个项目上运行不正常,则可能是版本问题。检查两者上的 @material-ui 是否为相同版本。也许两个不​​同的包在某个时候相互冲突。

检查你是如何安装它们的

从你的问题来看,它说它是相同的版本。但是,您没有提到如何在两个项目上安装您的包。如果您使用 yarn linknpm link 安装,它应该会按预期正确安装依赖项。

检查你是否使用了不同的包

如果你检查包,最近 material-ui 已经被弃用,通知说升级到 @material-ui/core 代替。可能是该文件夹中的某些包不相同。无论哪种方式,每当存在依赖冲突时都是这样。检查 @material-ui 文件夹。

手动压平它们(危险)

有几个软件包可以有效解决这个问题。他们将遍历嵌套的 node_modules 文件夹并将它们展平到单个文件夹中。

扁平化包

  • 使用 npm install -g flatten-packages 安装。
  • 运行可执行文件 flatten-packages 以重新排列项目目录中 node_modules 文件夹中的所有包。
  • Flatten 将删除旧版本的包。您应该注意与版本中断更改相关的错误。

关于npm - 如何防止在 node_modules 中嵌套 node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56704387/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com