npx、npm、cnpm、pnpm、nvm、yarn 整理
关于包管理的分享npx、npm、cnpm、pnpm、nvm、yarn 等的发展历史,性能情况,及使用方法
npx
- npm使用教程:http://www.ruanyifeng.com/blog/2019/02/npx.html
- 介绍:一个 npm 包执行器。我们可以使用 npx 来执行各种命令
npx是npm5.2.0版本中新增的命令,它可以直接运行安装在npm仓库中的任何一个模块。npx的优势在于可以避免全局安装模块带来的问题,例如版本冲突等。此外,npx还可以方便地运行Node.js脚本。npx的使用方法很简单,只需要在命令行中输入npx后面跟随要运行的模块即可。
- 安装:
<font style="color:rgb(51, 51, 51);background-color:rgb(247, 247, 247);">npm install -g npx</font> - 使用:
npx xxx - 案例:
1. npx执行依赖包里的二进制文件。以往在 node 项目中要执行一个脚本,需要将它在 scripts 中声明:npm run serve
scripts": {
"serve": "vue-cli-service serve",
"dev": "vue-cli-service serve --mode dev",
"test": "vue-cli-service serve --mode test",
"uat": "vue-cli-service serve --mode uat",
"prod": "vue-cli-service serve --mode prod",
"build": "vue-cli-service build --mode production",
"commit": "git cz",
"commit:am": "git status && git add . && git cz"
}
用了 npx 以后呢,不需要在 scripts 中声明了,就可以直接执行命令即可(npx 开头,然后写入要执行的内容):npx vue-cli-service serve避免全局安装模块
2. 避免全局安装模块
npx 还能避免全局安装的模块。比如,create-react-app 这个模块是全局安装,npx 可以运行它,而且不进行全局安装。
npx create-react-app my-react-app
3. 使用不同版本的 node
利用 npx 可以下载模块这个特点,可以指定某个版本的 Node 运行脚本。它的窍门就是使用 npm 的 node 模块。
$ npx node@0.12.8 -v v0.12.8
上面命令会使用 0.12.8 版本的 Node 执行脚本。原理是从 npm 下载这个版本的 node,使用后再删掉。这个方法用来切换 Node 版本,要比 nvm 那样的版本管理器方便一些。
npm
- 中文文档:https://www.npmjs.cn/
- 介绍:node.js 包管理工具;用来管理 node.js 中的第三方插件;新版本的 node 在安装的时候,会自动安装对应版本的 npm
npm是Node.js的官方包管理器,它可以帮助开发者安装、更新、卸载和管理项目依赖包。npm还提供了一些其他的功能,例如发布自己的包等。npm的性能较好,在大部分情况下可以满足开发者的需求。npm的发展历史可以追溯到Node.js的诞生,是Node.js社区中最早的包管理器之一。
npm的使用方法也很简单,只需要在命令行中输入npm后面跟随要执行的命令即可。例如,使用npm安装一个包可以使用命令:
- 命令:
npm install <package-name>
cnpm
- 中文文档:https://cnpmjs.org/
- 介绍:使用的是淘宝的源。用法跟 npm 完全一致。cnpm 不稳定,在很多地方不推荐使用
cnpm是npm的一个国内镜像,它可以加快npm包的下载速度。由于npm在国内的下载速度较慢,因此cnpm的出现得到了广泛的欢迎。cnpm的使用方法与npm基本相同,只需要在命令行中输入cnpm后面跟随要执行的命令即可。例如,使用cnpm安装一个包可以使用命令:
- 安装:
npm install -g cnpm --registry=https://registry.npm.taobao.orgyarn global add cnpm --registry=https://registry.npm.taobao.org
- 命令:
cnpm install <package-name> - 镜像切换
cnpm config set registry https://registry.npm.taobao.orgcnpm config set registry https://registry.npmjs.org/
需要注意的是,cnpm并不是npm的替代品,它只是npm的镜像,因此仍然建议在不需要加速下载和安装的情况下使用npm。另外,由于cnpm是在淘宝团队维护的镜像,因此需要注意安全性和稳定性问题。
pnpm
- 中文文档:https://www.pnpm.cn/
- 介绍:performant npm ,意味“高性能的 npm”。pnpm由npm/yarn衍生而来,解决了npm/yarn内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为“最先进的包管理工具”。
pnpm是一个快速、轻量级的包管理器,它可以同时管理多个项目的依赖包,节省磁盘空间和下载时间。pnpm的性能比npm要快,因为它使用了硬链接和符号链接来共享同一份依赖包,并且可以并发地安装包。pnpm的发展历史可以追溯到2016年,是一个相对较新的包管理器。
pnpm的使用方法也很简单,只需要在命令行中输入pnpm后面跟随要执行的命令即可。例如,使用pnpm安装一个包可以使用命令:
- 命令:
pnpm install <package-name> - 使用
- 安装
npm install -g pnpmyarn global add pnpm
- 安装依赖包
pnpm install -p react
- 升级依赖包
pnpm update -u
- 删除依赖包
pnpm uninstall -r react
- 运行项目
pnpm start
- 版本管理
pnpm install react@16.8.0
- 安装
由于pnpm使用并发安装包的方式,因此在安装或更新大量依赖包时,可能会占用大量的系统资源,需要注意系统的性能和稳定性。
nvm
- 中文文档:https://github.com/nvm-sh/nvm/blob/master/README.md
- github下载地址:https://github.com/coreybutler/nvm-windows/releases
- nvm安装、配置及常见问题 博客地址
- 介绍:node.js 版本管理工具;不同项目可能需要不同版本的 node;可以使用 nvm 来管理 node.js 版本
nvm是Node.js版本管理器,它可以帮助开发者在同一台机器上同时安装和管理多个Node.js版本。nvm的优势在于可以方便地切换Node.js版本,以及在不同的项目中使用不同的Node.js版本。nvm的发展历史可以追溯到2010年,是最早的Node.js版本管理器之一。
nvm的使用方法也很简单,只需要在命令行中输入nvm后面跟随要执行的命令即可。例如,使用nvm安装一个Node.js版本可以使用命令:
- 常用命令
1. nvm install <version> // 安装指定版本node
2. nvm ls // 检查已安装的node版本
3. nvm use <version> // 切换node版本
4. node -v // 检查当前正在使用的node版本
5. nvm alias default <version> // nvm alias default 12
6. nvm uninstall <version> // 删除node
7. nvm ls-remote // 列出远程可用的node版本
8. nvm install-latest-npm // 更新nvm到最新版本
9. nvm --help // 显示命令行帮助信息
10. nvm on // 开启node.js版本管理。
11. nvm off // 关闭node.js版本管理。
yarn
- 中文文档:简介
- 介绍:经过重新设计的崭新的 npm 客户端;运行速度显著提升,整个安装时间比 npm 少。一般推荐使用 yarn 代替 npm
yarn是由Facebook开发的另一个包管理器,它可以快速、可靠地安装和管理项目依赖包。yarn的性能比npm要快,因为它使用了并行下载和离线缓存等优化策略。此外,yarn还提供了一些其他的功能,例如锁定依赖版本等。yarn的发展历史可以追溯到2016年,是一个相对较新的包管理器。
yarn的使用方法与npm基本相同,只需要在命令行中输入yarn后面跟随要执行的命令即可。例如,使用yarn安装一个包可以使用命令:
- 安装:
npm install -g yarn - 命令:
yarn add <package-name>
使用场景
- 如果需要快速、可靠的管理依赖包,可以选择yarn。
- 如果需要同时管理多个项目的依赖包并节省磁盘空间和下载时间,可以选择pnpm。
- 如果需要在同一台机器上同时安装和管理多个Node.js版本,可以选择nvm。
- 如果需要快速运行安装在npm仓库中的模块,可以选择npx。
- 如果需要加速npm包的下载速度,可以选择cnpm。
- 如果只是普通的依赖包管理,npm已经足够。
npm&yarn对比
| **npm ** | yarn | 描述 |
|---|---|---|
| npm init | yarn init | 初始化项目 |
| npm install | yarn、yarn install | 安装依赖 |
| npm install react --save | yarn add react | 安装某依赖,写入dependencies |
| npm uninstall react --save | yarn remove react | 删除依赖 |
| npm install react --save-dev | yarn add react --dev | 安装某依赖,写入devDependencies |
| npm install xxx -g | yarn global add xxxx | 全局安装某依赖 |
| npm update --save | yarn upgrade | 更新依赖 |
| npm cache clean | yarn cache clean | 清除全局缓存依赖包 |
| npm run dev | yarn dev、yarn run dev | 执行dev命令 |
| 查询当前配置的镜像 | 设置成淘宝镜像 | |
| npm get registry | yarn config get registry | |
| npm config set registry https://registry.npm.taobao.org | yarn config set registry https://registry.npm.taobao.org |
npm、pnpm、Yarn性能对比


更多推荐


所有评论(0)