包管理npm、yarn、pnpm区别

简介: 包管理npm、yarn、pnpm区别

npm


npm 是Node.js标准的软件包管理器,随同 node.js 一起安装。

存在的不足:


1.npm install 下载速度慢。


2.同一个项目,安装的无法保持一致性。原因是因为 package.json 文件中版本号的特点导致在安装的时候代表不同的含义,^是npm安装后的默认符号。



3.使用 npm 安装多个 js 包时,包会在同一时间下载和安装。安装过程中,其中一个包抛出了一个异常,但 npm 会继续安装其他包,所以错误信息就会在一大堆提示信息中丢失掉,以至于直到执行前,都不会发现实际发生的错误。


Yarn


yarn 是为了弥补 npm 的一些缺陷而出现的,是由 Facebook、Google、Exponent 和 Tilde 联合推出的一个新的 JS 包管理工具。


npm和yarn的区别


1、并行安装:yarn安装包会同时执行多个任务,npm 需等待上一个任务安装完成才能运行下一个任务。


2、离线模式:如果你已经安装过一个包,用 yarn 再次安装会从缓存中获取,而 npm 会从网络下载。


3、版本锁定:yarn 默认有一个 yarn.lock 文件锁定版本,在使用npm或yarn安装之前会先检查lock文件上的版本,并来安装它们,保证环境统一,而 npm 默认从网络下载最新的最稳定的,版本锁定可以解决包之间版本不兼容问题,npm 也可以通过命令实现版本锁定。


4、更简洁的输出:yarn 安装包时输出的信息较少,npm 输出信息冗余。


pnpm


pnpm(performant npm) ,意味“高性能的 npm”。pnpm由npm/yarn衍生而来,解决了npm/yarn内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为“最先进的包管理工具”。


优势:

包安装速度快。pnpm 不仅比 npm 快,而且比 yarn 快。无论是冷缓存还是热缓存,它都比 yarn 快。yarn 从缓存中复制文件,而 pnpm 只是从全局存储中链接它们。

磁盘空间利用高效。所有文件都会存储在硬盘上的某一位置。 当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。


相关文章
|
4天前
|
资源调度 JavaScript Linux
nvm, node.js, npm, yarn 安装配置
nvm, node.js, npm, yarn 安装配置
24 1
|
4天前
|
资源调度 前端开发 JavaScript
nvm,npm,yarn相关指令,前端配置准备
nvm,npm,yarn相关指令,前端配置准备
7 1
|
13天前
|
JavaScript 前端开发 开发者
Node.js的包管理和npm工具深度解析
【4月更文挑战第30天】本文深入解析Node.js的包管理和npm工具。包管理促进代码复用和社区协作,包包含元数据描述文件`package.json`和入口文件。npm提供搜索、安装、发布等功能,通过命令行进行操作,如`install`、`search`、`uninstall`。npm支持版本控制、全局安装、脚本定义及私有仓库。理解和熟练运用npm能提升Node.js开发效率。
|
1月前
|
资源调度 开发者
npm,registry,镜像源,npm切换源,yarn,cnpm,taobao,nrs
我们在使用 node 的 npm 下载依赖的时候,往往下载速度很慢,那是因为 npm 默认的是 npm 处于国外的官方镜像源。所以需要切换到国内的镜像源来加速依赖下载。所以本文推荐一款简单好用 npm 镜像源管理器,可以方便开发者管理自己的镜像源。
128 1
|
1月前
|
缓存 资源调度 JavaScript
npm、pnpm和yarn【简单了解】
npm、pnpm和yarn【简单了解】
21 2
|
1月前
|
网络安全 计算机视觉
【node】 npm install 报错:code 128
【node】 npm install 报错:code 128
39 1
|
2月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
97 1
|
2月前
|
JavaScript 内存技术
node与npm版本对应关系以及使用nvm管理node版本
node与npm版本对应关系以及使用nvm管理node版本
397 0
|
4月前
|
JavaScript
node.js 项目中执行 npm install 命令后看到的 idealTree inflate 的含义
node.js 项目中执行 npm install 命令后看到的 idealTree inflate 的含义
228 0

推荐镜像

更多