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

时间:2019-03-05 18:09:55

标签: node.js npm path node-modules filepath

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

我正在使用macOS btw。

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

  

/ 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%的空间,当我看到这种情况时,我就迷失了方向。有人对此发生有任何解释吗?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

在本地管理软件包总是对您的项目有利,尽管有时node_module是一个具有所有依赖关系的大文件,但有时无法在本地导入并且可以很好地工作,因为它是全局导入的。本地导入使您的项目结构高效,用户可以查看其他项目您导入的第三方软件包。正如@noobius所说,您可以在将文件上传到git时忽略它,因为在运行npm install时将使用package.json文件中的信息重新生成它。 如果有帮助,请投票