node_modules 在任何项目文件夹之外的多个目录中

Posted

技术标签:

【中文标题】node_modules 在任何项目文件夹之外的多个目录中【英文标题】:node_modules in multiple directories outside any project folder 【发布时间】:2019-07-27 06:56:39 【问题描述】:

我已经阅读了很多关于 *** 的文章来了解 node_modules, 他们都没有和我一样的“问题”。这不是一个大问题,因为 节点仍然可以正常工作。但问题是,我不喜欢 不必要的文件或错误的文件结构。

顺便说一句,我正在使用 macOS。

我了解到,当您在全局范围内安装节点模块时,它们将进入此文件路径:

/usr/local/lib/node_modules

但我还在此路径中发现了另一个 node_modules:

~/node_modules

我可以简单地删除 this node_modules 吗? 编辑

^这是我要问的主要问题,如果我可以删除不在 usr/local/lib/.. 内也不在任何项目文件夹内的 node_modules。

另外,我想我明白,即使您将 node_modules 全局安装到第一个路径中,如本文所述,我仍然必须在我的项目文件夹中安装 node_modules。

那么全局安装 node_modules 有什么用呢?

我可以删除两个路径并仅在我的项目文件夹中安装 node_modules 吗?这会更有利吗?

当我将包含 node_modules 的项目文件夹移动到不同的磁盘时,我也注意到了这一点。这个文件夹的文件大小随着荒谬的数字而增加。这与全局安装 node_modules 有什么关系吗?

编辑

当我将项目文件从 Disk1 传输到 Disk2 时,我无法将任何项目文件移回 Disk1,因为该文件夹的文件大小增加了很多。我正在谈论将 12 个项目从 Disk1 移动到 Disk2,但每个项目文件夹都比这 12 个项目文件夹的总和大 2 倍。 Disk1 有 250GB 的空间。 Disk2 有 1TB 的空间。移动这些项目文件夹使我的 Disk2 充满了 80% 的空间,当我看到这种情况发生时,我失去了理智。有人对这种情况有任何解释吗?

【问题讨论】:

【参考方案1】:

在本地管理包对您的项目总是有好处的,尽管 node_module 是一个包含所有依赖项的大文件,有时无法在本地导入并且工作正常,因为它是全局导入的。本地导入使您的项目结构高效,用户可以查看附加您已导入的第三方软件包。正如@noobius 所说,您可以在将文件上传到 git 时忽略它,因为它会在使用 package.json 文件中的信息运行 npm install 时重新生成。 有帮助就点个赞吧

【讨论】:

【参考方案2】:

本地 npm 包安装将在该本地位置放置一个 node_modules。全局节点包通常是您希望在多个项目中全局使用的包,或者它们包含 CLI 命令(这些包为您提供命令行界面)。

您应该通过 package.json 文件管理项目本地的包,并通过 npm 管理全局包(使用 npm 安装、卸载等...)。当您移动项目或将其提交到 git 时,请忽略 node_modules 文件夹(您可以随时删除本地 node_modules 文件夹),因为它会在使用 package.json 文件中的信息运行 npm install 时重新生成。

【讨论】:

以上是关于node_modules 在任何项目文件夹之外的多个目录中的主要内容,如果未能解决你的问题,请参考以下文章

npm run start 在 Windows 之外的不同操作系统上找不到 node_modules 文件夹

Gulp 安装在项目根目录之外

如何在 ./node_modules/@types 之外使用打字稿定义文件

Ionic 2在“node_modules”之外的动态导入

如何在 VSCode 扩展包中包含 node_modules 文件夹?

我可以将 npm node_modules 目录放在我的“webroot”之外吗