首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js的依赖管理与Maven有什么不同?

Node.js的依赖管理与Maven有什么不同?
EN

DevOps用户
提问于 2017-06-26 17:11:12
回答 2查看 5.8K关注 0票数 9

奇怪的是,node.js不太可能在项目目录中安装软件所需的软件包。

有没有办法引入一个中央存储库,它也缓存不同版本的组件,并允许像我们从其他生态系统中知道的那样,在构建时将它们拉出来?

EN

回答 2

DevOps用户

发布于 2017-07-19 23:39:47

奇怪的是,node.js不太可能在项目目录中安装软件所需的软件包。

我不认为node.js和Maven上的npm有根本的区别。在这两种情况下,依赖关系最终都会出现在项目目录中(npm:/node_modules,Maven:/target)。否则,您无法继续构建该软件。(当您运行构建系统来创建最终工件时,它需要依赖项。)

此外,两者都有一个全局缓存,以避免下载已经获取的依赖关系:在Maven中,默认的缓存目录是~/.m2 (在Linux和MacOS上)。对于npm来说,它是~/.npm

有没有办法引入一个中央存储库,它也缓存不同版本的组件,并允许像我们从其他生态系统中知道的那样,在构建时将它们拉出来?

如果系统缓存不够,并且不希望完全依赖公共存储库(npm: registry.npmjs.org,Maven: Maven Central),则可以运行自己的镜像。例如,如果您希望能够重建软件,即使公共存储库已经关闭。

在我以前的工作中,我们使用尼克斯作为缓存代理和本地注册表(用于托管仅在组织中可访问的代码)。它既支持npm (参见文档),也支持Maven (参见文档)。(还有其他工具,但重点是这两个生态系统都可以由一个工具来处理。)

当然,Maven和npm之间也有区别。例如,Maven也是一个完整的构建系统,而npm的范围主要是依赖管理。Maven还定义了构造Java项目(“Maven之路”)的约定。但是,当只考虑依赖方面时,Node.js的包管理器(如npm )在概念上与Maven并没有太大的不同。

票数 6
EN

DevOps用户

发布于 2022-11-14 09:58:16

在2022年,pnpm:https://pnpm.io/与现在的maven非常相似。Pnpm不会将文件复制到node_modules,而是创建硬链接。

票数 0
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/1432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档