您好我是Node的新手,特别是依赖管理系统。在安装模块时,我发现当我编写的实际代码不是那么冗长时,我的代码库被很多依赖项覆盖。我还注意到,有时当我进行npm安装而不是将所有依赖项打包在代表模块的一个文件夹下时,我有时会下载模块依赖项并行处理并污染主文件夹。例如,我创建了一个模块,该模块可能有3个子模块,所有这些模块都由主模块使用,并且非常适合。
index.js
node_modules
my_authentication_module
my_authorization_module
my_persistance_module
然后,当我安装AWS依赖项时,模块数量大幅增加,因此我的代码库看起来像
index.js
node_modules
my_authentication_module
my_authorization_module
my_persistance_module
aws_module_1
aws_module_2
.
.
.
.
.
aws_module_20
问题
这使我的代码变得混乱,并使它看起来像现在更多的东西。是否有更有效的方法来管理节点项目?
次要问题
如何运行" npm安装some-module --save"是不是将所有模块依赖项限制在单个文件夹中?或者有没有办法做到这一点,以便如果一些包需要50个包,我不会最终得到50个包与需要它们的包并行。
例如。而不是:
node_modules
my_authentication_module
my_authorization_module
my_persistance_module
aws_module_1
aws_module_2
.
.
.
.
.
aws_module_20
获得
会很高兴node_modules
my_authentication_module
my_authorization_module
my_persistance_module
aws
node_modules
aws_module_1
aws_module_2
.
.
.
.
.
aws_module_20
因此,至少导航到顶层,您可以轻松地看到只有3个感兴趣的模块与一堆AWS依赖关系整齐地塞进一个文件夹。这样的事情可能吗?
答案 0 :(得分:0)
你似乎误解了node_modules
的目的。它完全属于npm
(或yarn
等)。它永远不会包含您自己的代码(除了您的其他单独的包,它们作为依赖项引入)。它(通常)不受版本控制;也就是说,它是.gitignored
' d。在任何时候,它都应该能够完全擦除并用简单的npm install
重新填充。当然,与任何事情一样,这里有更多的细微差别和不同意见,这些意见将在网上详细讨论。
有许多方法可以管理和构建自己的代码和工件。在许多情况下,它将位于项目顶部的src
或可能lib
目录下,与node_modules
并行。在src
内,有些人更喜欢按功能对代码进行分组(例如,控制器,路由器,服务),而有些人则更喜欢按照关注的区域进行分组 - 这是项目所有者决定的事情。 / p>
在任何情况下,由于node_modules
从根本上不是您直接关注的问题,npm
是否以分层方式组织依赖关系并不是真正的结果,如npm@2
的情况一样,或以平面方式,与npm@3
一样。是的,看到node_modules
有100个条目或500个条目可能有点令人不安,但npm
真的需要担心,并且有充分的理由进行更改与npm@3
。