【问题标题】:npm node_modules not being properly nested?npm node_modules 没有正确嵌套?
【发布时间】:2015-12-31 18:58:08
【问题描述】:

使用 npm 时出现意外行为。例如使用命令安装 express 时:

npm install express

我希望在“node_modules”目录中创建一个名为“express”的文件夹,并且它的依赖项将安装在该文件夹的“node_modules”子目录中。

我看到的是正在创建“express”文件夹,但它的所有依赖项都被添加到我的项目文件夹中的根“node_modules”目录(与 express 相同)中,而不是嵌套在“express”中文件夹。

为什么会这样? (使用 npm v3.3.5)

【问题讨论】:

标签: npm


【解决方案1】:

这是 npm@3 的设计更改,默认情况下会进行重复数据删除。见:

平坦,平坦,平坦!

您的依赖项现在将安装最大程度地。只要是 可能,您的所有依赖项,以及它们的依赖项,以及他们的 依赖项将安装在项目的node_modules 文件夹中,没有 嵌套。当两个(或 更多)模块具有冲突的依赖关系。

https://github.com/npm/npm/blob/ff47bc138e877835f1c0f419fea5f5672110678a/CHANGELOG.md#flat-flat-flat

https://github.com/npm/npm/issues/6912

【讨论】:

  • 非常感谢您的回答!我认为这是一个配置选项或更改,但在我的谷歌搜索中找不到它:]
  • 有什么办法可以找回嵌套的依赖关系吗?我的意思是,我正在进入 gulp 并在我的节点模块文件夹中使用 131 个目录。它真的势不可挡,让我很沮丧。
  • @5parc 目录结构和进入 gulp 有什么关系?您在什么情况下查看目录结构并不知所措?
  • 这主要是因为那里的所有教程都涵盖了 NPM 3.0 之前的 gulp,在过去,依赖项会被嵌套。但我发现它只是一个结构性变化,并意识到它的工作原理几乎相同。
  • @5parc 如果您仍然希望它们嵌套:stackoverflow.com/a/35227212/580651
猜你喜欢
  • 2016-03-14
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 2019-07-25
  • 2017-06-04
  • 1970-01-01
相关资源
最近更新 更多