常见的node包管理器💥
小杨 2023/10/31
# npm
npm 是 Node.js 的官方包管理器,也是 JavaScript 生态系统中最受欢迎的包管理器之一。npm 具有许多强大的功能,例如自动依赖项解析和版本控制。但是,由于它是单线程解析依赖项,因此安装速度可能相对较慢。
优点
- 官方支持:npm 是 Node.js 的官方包管理器,因此它得到了广泛的支持和使用。
- 自动依赖项解析:npm 可以自动解析项目中的依赖项,并安装所需的软件包。
- 版本控制:npm 使用 package-lock.json 文件来确保安装过程中使用相同的依赖项版本。
- 社区支持:npm 有一个庞大的社区,可以提供大量的软件包和资源。
缺点
- 安装速度较慢:由于 npm 是单线程解析依赖项,因此安装速度可能相对较慢。
- 文件冲突:由于 npm 使用 package-lock.json 文件来锁定依赖项版本,因此在多人协作时可能会出现文件冲突问题。
# yarn
yarn 是 Facebook 开发的包管理器,旨在解决 npm 的一些问题。yarn 通过并行下载和缓存来加快安装速度,并通过锁定文件确保安装过程中使用相同的依赖项版本。此外,yarn 还提供了一些其他功能,例如离线模式和更好的脚本执行。
优点
- 安装速度快:由于 yarn 可以并行下载和缓存软件包,因此安装速度通常比 npm 快。
- 版本控制:yarn 使用 yarn.lock 文件来确保安装过程中使用相同的依赖项版本。
- 离线模式:yarn 支持离线模式,可以在没有互联网连接的情况下工作。
- 更好的脚本执行:yarn 通过更好的脚本执行功能,使得运行脚本变得更加容易
缺点
- Facebook 集中控制:由于 yarn 是由 Facebook 开发的,因此有人担心 Facebook 可能会在未来控制 yarn 的发展方向。
- 依赖项缓存:yarn 将所有软件包都缓存在本地,这可能会占用大量磁盘空间。
# pnpm
pnpm 是另一个 JavaScript 包管理器,它与 npm 和 yarn 相比有一些不同之处。pnpm 具有类似于 yarn 的速度和稳定性,但与 yarn 不同的是,它采用了一种不同的依赖项解析方法,即将依赖项安装在单个位置,并使用符号链接将它们链接到每个项目中。
优点
- 安装速度最快:由于 pnpm 可以共享依赖项,因此它可以更快地安装和更新模块。
- 多线程解析:与 yarn 类似,pnpm 也可以使用多线程解析依赖项。
- 离线模式:pnpm 支持离线模式,并且可以在没有互联网连接的情况下工作。
- 更好的内存管理:pnpm 使用更好的内存管理技术,可以更有效地利用系统资源。
缺点
- 相对较新:由于 pnpm 是较新的包管理器,因此可能会缺乏一些 npm 和 yarn 中的功能和资源。
- 可能存在兼容性问题:由于 pnpm 采用了不同的依赖项解析方法,因此可能会存在一些兼容性问题。
# 结论
在选择 Node.js 包管理器时,需要考虑项目的需求和团队的偏好。如果需要官方支持和大量的社区支持,则可以选择 npm。如果需要更快的安装速度和更好的版本控制,则可以选择 yarn。如果需要更快的安装速度和更好的内存管理,则可以选择 pnpm。
# 安装
# npm(安装node自带,可以升级到最新)
- 安装设置淘宝镜像:
npm config set registry https://registry.npmmirror.com
# yarn
- 安装:
npm install -g yarn
- 查看是否成功:
yarn -v
- 设置yarn镜像源:
yarn config set npmRegistryServer https://registry.npm.taobao.org
常用命令
- 初始化:
yarn init
- 添加依赖包:
yarn add [package] # 会自动安装最新版本,会覆盖指定版本号
|yarn add [package] [package] [package] # 一次性添加多个包
|yarn add [package]@[version] # 添加指定版本的包
# pnpm
- 安装:
npm install -g pnpm
- 查看源:
pnpm config get registry
- 设置pnpm镜像源:
pnpm set registry https://registry.npm.taobao.org
常用命令
- 安装包:
pnpm install 包
- 添加依赖包:
pnpm add 包 -D
|pnpm add -g // 全局安装