当前位置: 首页 > 知识库问答 >
问题:

node_modules在开发阶段的位置

慕容灿
2023-03-14

最近我开始了Angular 2的应用程序开发,我遇到了一些问题。我有多个使用某些节点模块的项目,我在project文件夹中用npm install安装了这些模块。但后来我开始思考:如果我有很多项目,并且为每个项目安装节点模块,这需要相当多的磁盘空间,并且有些节点模块安装了多次(在多个项目中)。因此,我试图找到一种方法,将节点模块安装在某个常用文件夹中,以便使该文件夹成为我的项目使用的某种库。但是我想到了另一个问题:如果不同的项目需要相同模块的不同版本怎么办?如何在同一文件夹中安装多个模块版本?

也许我的想法完全错了,所以我请求你解决我的问题。在开发阶段有没有处理节点模块的通用方法?每个项目都有自己的节点模块文件夹还是有一些共同的文件夹?最常见的方法是什么(如果有的话)?

谢谢!

编辑:在Nexus Repository docs中找到了这个页面--它说代理npm注册表是为了“减少重复下载”,我正在尝试这样做。我已经创建了一些代理npm存储库,并且在.npmrc文件中指定了代理url。当我运行npm install时,资产和组件被添加到代理存储库中,但这并不能解决我的问题-节点模块也被安装到项目的文件夹中。我不太理解如何使用Nexus存储库“减少重复下载”。谁能给我解释一下如何做到这一点?

共有1个答案

甘学潞
2023-03-14

通常,没有什么可以阻止您在项目之间共享node_modules。来自节点文档:

If the module identifier passed to require() is not a core module, 
and does not begin with '/', '../', or './', then Node.js starts at 
the parent directory of the current module, and adds /node_modules, 
and attempts to load the module from that location. Node will not 
append node_modules to a path already ending in node_modules.
If it is not found there, then it moves to the parent directory, 
and so on, until the root of the file system is reached.

因此,无论何时引用包,都需要编写正确的路径。

 类似资料:
  • 本文向大家介绍Android开发学习路线的七大阶段,包括了Android开发学习路线的七大阶段的使用技巧和注意事项,需要的朋友参考一下 看了专业的培训机构的课程大纲,才知道,自己学习android的路途才刚刚开始!特此整理分享一下,希望能帮到那些准备学习android开发,或者正在学习android开发,但是又没有找到明确路线的童鞋们!(PS:特此声明,这篇文章不是给培训机构做广告哈,本人也是在自

  • 我有几个与Docker在开发阶段的使用相关的问题。 我将提出我认为Docker如何在开发环境中使用的三种不同场景。让我们想象一下,我们正在Java和Spring Boot中创建一个REST API。为此,我需要一个MySQL数据库。 > 第一个场景是让docker compose使用MySQL容器进行开发,生产docker使用MySQL和另一个容器中的Java应用程序(jar)进行组装。为了开发,

  • 此章列举了常用功能的开发,其中涉及了一些API的使用,需要需要查看完整的API列表请查看JSSDK。

  • Vanilla 的包开发 可以使用任意 LUA 包的开发方式来开发 Vanilla 包(Controllers,Library,Dao,Services等),也可以使用 Vanilla 所提供的面向对象 方式进行开发 对 Controller 使用继承和构造器 下面我们看一个例子: local IndexController = Class('controllers.index', Loa

  • 我目前正在学习Gradle。 但是我发现,当我在命令行运行时,复制不会发生。只有当显式执行任务时(即通过在命令行运行)才会发生复制。所以上面的代码实际上行为与 我对配置阶段和配置闭包的理解是否不正确?还是我漏掉了一些信息?

  • 有人能告诉我调用platform.exit()之后会发生什么吗?我们不能重新启动应用程序吗?