我可以将 npm node_modules 目录放在我的项目之外吗

Phi*_*ffi 6 node.js npm

我可以像 Maven 处理其依赖项一样将 node_modules 目录放在项目之外吗?

sle*_*man 5

有点。目录node_modules实际上不是 的一个功能,npm而是node.js.

Node.js 如何使用node_modules.

node_modules当你需要一个模块时,node.js 将从当前目录向上搜索目录。这意味着如果它在当前目录(实际上可能是项目的子目录而不是项目目录)中找不到它,它将在父目录中查找,然后从父目录的父目录一直到根目录。

例如,您可以有这样的项目结构:

/node_modules   <-------------------- modules available to all projects    
/code
     /project_A
                /node_modules <------ modules available to project A
                /lib
                    /node_modules <-- modules available to the lib directory
     /project_B
               /node_modules  <------ modules available to project B
Run Code Online (Sandbox Code Playgroud)

这样,您可以拥有一些由多个项目共享的模块和一些特定于项目的模块,甚至一些模块仅可用于项目中的某些文件。

npm 如何处理node_modules

但请注意,npm仅有一种解释node_modules。它仅在您的项目目录中管理node_modules。具体来说是包含该package.json文件的目录。

所以是的,您可以做到这一点,但npm不会理解您在做什么,并且您的package.json意愿包含不完整的依赖关系。我不建议对涉及多个开发人员的项目执行此操作,因为它看起来更像是配置错误的开发环境 - 基本上其他人会认为这是一个错误。然而,我个人在个人项目中使用了这种结构,我不关心我的package.json文件。

  • 我的问题不是磁盘空间。我的问题是我在 IDE 工作区中添加了超过 80,000 个文件。每当我因为 git 分支切换而需要刷新项目,或者我需要在 TS 文件中查找单词时,由于 IDE 必须处理的文件数量,这些操作的时间会增加很多。 (2认同)