前端包管理工具 -- NPM、CNPM、NVM、NRM、YARN、NPX、PNPM

前端包管理工具

NPM、CNPM、NVM、NRM、YARN、NPX、PNPM

在这里插入图片描述

一、npm

包管理工具、常用命令

npm install <pack_name>
npm run dev

# npm仓库登录、退出
npm login
npm logout
npm adduser

# npm 发布
npm publish
npm unpublish

npm info <pack_name>

二、cnpm

淘宝的npm源、用法同npm

cnpm install

三、nvm

node的version版本管理工具

npm i -g nvm					# 安装
nvm ls							# 列出所有
nvm use 18						# 切换版本				
# 安装版本
nvm install 16.19.1
nvm uninstall 16.19.1

# 使用node18运行app.js
nvm run 18 app.js

四、nrm

npm源的管理工具

npm i -g nrm						# 安装
nrm ls								# 列表
nrm use <name>						# 切换源
nrm add <name> <url> <home>			# 添加源
nrm current  						# 当前源

五、yarn

特性/方面npmyarn
性能默认情况下性能可能受到网络影响,npm 7 引入了性能优化使用并行安装和缓存机制,提供更好的安装速度
依赖锁定npm 5 引入 package-lock.json 文件锁定依赖使用 yarn.lock 文件,从一开始就支持依赖锁定
工作区支持npm 7 引入工作区支持从一开始就支持工作区,方便管理多个包
插件系统提供插件系统,允许扩展功能提供插件系统,但社区支持和插件数量较少
配置文件使用 package.jsonnpm-shrinkwrap.json使用 package.jsonyarn.lock 文件
社区和生态系统官方工具,拥有庞大的社区和生态系统社区不断增长,但与 npm 相比规模较小
兼容性作为官方工具,兼容性高兼容大多数 npm 包,但可能存在行为差异
命令行界面提供丰富的命令行命令命令行界面与 npm 类似,但命名和用法有所不同

这个表格概括了 npm 和 yarn 在性能、依赖锁定、工作区支持、插件系统、配置文件、社区和生态系统以及命令行界面方面的主要差异。开发者可以根据自己的项目需求和偏好来选择使用哪个工具。

六、NPX

包执行器,运行 npm 包中的可执行文件,而无需全局安装这些包

  1. 无需全局安装:使用 npx 运行任何 npm 包,而无需安装其到全局环境。
  2. 本地执行npx 默认会在当前项目的 node_modules/.bin 目录下查找可执行文件,这意味着它会使用项目依赖中的包,而不是全局依赖。
  3. 临时安装:如果你需要全局安装一个包来运行它,npx 可以为你临时安装该包,这样它就不会影响全局依赖。
  4. 简化命令npx 简化了命令行的使用,而不需要记住复杂的命令。
  5. 支持 npm 脚本npx 可以执行 package.json 中定义的 npm 脚本。
  6. 环境隔离npx 创建了一个隔离的环境来运行命令,这有助于避免污染全局环境。

使用 npx 的基本语法如下:

npx <package>@<version> [args]

或者,如果你想要执行一个 npm 脚本:

npx <package> -- <args>

例如,如果你想运行 create-react-app 来创建一个新的 React 项目,你可以这样做:

npx create-react-app my-app

七、PNPM

pnpm(Parallel Node Package Manager):高效的包管理器,它提供了一种全新的方式安装和管理 Node.js 包。pnpm 的目标是解决 npm 和 yarn 在处理大型依赖树时的性能问题,以及减少磁盘空间的使用。

  1. 并行安装pnpm 能够并行安装依赖,这大大加快了安装速度。

  2. 磁盘空间节省pnpm 使用硬链接(hard links)来共享依赖,这意味着相同的包只会在磁盘上存储一次,即使多个项目依赖于它。这显著减少了磁盘空间的使用。

  3. 依赖隔离:每个项目都有自己的依赖树,这有助于避免依赖冲突。

  4. 快照pnpm 使用快照(snapshot)来跟踪依赖的状态,这使得依赖的安装和更新更加快速。

  5. 兼容性pnpm 与 npm 和 yarn 的工作方式兼容,可以无缝替换它们。

  6. 支持工作区pnpm 支持工作区(workspaces),允许你在一个仓库中管理多个项目。

  7. 环境隔离pnpm 创建隔离的环境来运行项目,确保环境的一致性。

  8. 无需全局安装:与 npx 类似,pnpm 允许你运行包的可执行文件,而无需全局安装。

pnpm install
pnpm run <script-name>
# 全局安装一个包
pnpm add -g <package-name>

推荐,vue3源码使用pnpm进行管理仓库

### npm npmNode.js 的默认包管理器,用于安装、管理和共享 JavaScript 包。 - **安装方式**:npm 通常随 Node.js 一起安装。可以通过访问 [Node.js 官方网站](https://nodejs.org/) 下载并安装 Node.jsnpm 将自动包含在内。 - **常用命令**: - `npm install <package-name>`:安装指定包。 - `npm install -g <package-name>`:全局安装指定包。 - `npm update <package-name>`:更新指定包。 - `npm uninstall <package-name>`:卸载指定包。 ### cnpm cnpmnpm 的镜像版本,专为中国用户设计,以提高下载速度。 - **安装方式**: - 使用 npm 安装 cnpm:`npm install -g cnpm` - **常用命令**: - `cnpm install <package-name>`:安装指定包。 - `cnpm install -g <package-name>`:全局安装指定包。 - `cnpm update <package-name>`:更新指定包。 - `cnpm uninstall <package-name>`:卸载指定包。 ### Yarn Yarn 是由 Facebook 开发的包管理器,旨在解决 npm 的性能和安全性问题。 - **安装方式**: - 使用 npm 安装 Yarn:`npm install -g yarn` - 或者使用独立安装脚本: ```bash curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt-get update && sudo apt-get install yarn ``` - **常用命令**: - `yarn add <package-name>`:安装指定包。 - `yarn global add <package-name>`:全局安装指定包。 - `yarn upgrade <package-name>`:更新指定包。 - `yarn remove <package-name>`:卸载指定包。 ### pnpm pnpm 是一个快速、节省磁盘空间的包管理器,它通过硬链接和符号链接来共享依赖项。 - **安装方式**: - 使用 npm 安装 pnpm:`npm install -g pnpm` - 使用 npx 安装 pnpm:`npx pnpm add -g pnpm` - **常用命令**: - `pnpm add <package-name>`:安装指定包。 - `pnpm add -g <package-name>`:全局安装指定包。 - `pnpm update <package-name>`:更新指定包。 - `pnpm remove <package-name>`:卸载指定包。 ### nvm nvmNode Version Manager)是一个用于管理多个 Node.js 版本的工具- **安装方式**: - 使用 curl 安装 nvm: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash ``` - 或者使用 wget 安装 nvm: ```bash wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash ``` - 安装完成后,重新加载 shell 配置文件(如 `.bashrc` 或 `.zshrc`):`source ~/.bashrc` - **常用命令**: - `nvm ls-remote`:列出所有可用的 Node.js 版本。 - `nvm install <version>`:安装指定版本的 Node.js- `nvm use <version>`:切换到指定版本的 Node.js- `nvm alias default <version>`:设置默认使用的 Node.js 版本。 ### 区别 1. **npm** 是 Node.js 的默认包管理器,功能全面但有时会遇到性能瓶颈,尤其是在中国用户群体中。 2. **cnpm** 是 npm 的镜像版本,专门为提高国内用户的下载速度而设计,使用方式与 npm 类似。 3. **Yarn** 提供了更快的安装速度和更好的依赖管理机制,支持并行下载和确定性安装。 4. **pnpm** 通过硬链接和符号链接技术,显著减少了磁盘空间占用,并且保持了与 npm 兼容的 API。 5. **nvm** 不是包管理器,而是用于管理不同版本 Node.js工具,允许在同一台机器上轻松切换不同的 Node.js 版本。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值