yarn和npm的区别对比_比较npm和yarn 命令行
npm
npm 是目前js最流行的包管理工具,也是Node.js能够如此成功的主要原因之一。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。 npm 由三个独立的部分组成:
- 网站 (package)
- 注册表(registry)
- 命令行工具 (CLI)
网站是开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径。 注册表 是一个巨大的数据库,保存了每个包(package)的信息。 CLI 通过命令行或终端运行。开发者通过 CLI 与 npm 打交道。
yarn
Yarn 是为了弥补 npm 的一些缺陷而出现的, 它是由Facebook, Google, Exponent and Tilde开发者共同开发完成,Yarn 定位为"快速、可靠、安全的依赖管理工具"。
yarn对比npm的优点 :
1、离线模式
yarn会有一个缓存目录,会缓存以前安装过的软件包,再次安装时就不必从网络下载了,大大加速安装速度。
2、依赖关系确定性
在每一台机器上针对同一个工程安装依赖时,生成的依赖关系顺序和版本是一致的。
3、网络性能优化
下载软件时会优化请求顺序,避免请求瀑布发生
4、网络回弹
yarn在某个安装包请求失败时不会导致安装失败,它会自动去尝试重新安装。而npm则会毫不犹豫的失败,导致得再来一次,耗费时间
5、多注册来源
所有的依赖包,不管他被不同的库间接关联引用多少次,安装这个包时,只会从一个注册来源去装,要么是 npm 要么是 bower, 防止出现混乱不一致。
6、扁平模式
对于多个包依赖同一个子包的情况,yarn会尽量提取为同一个包,防止出现多处副本,浪费空间。比如1.2中,yarn会为babel-generator和babel-helper-define-map 创建同一个lodash子依赖,这样就节约一份的空间。
npm 与 yarn 命令对比
| npm | yarn |
|---|---|
| npm install | yarn install |
| (N/A) | yarn install --flat |
| (N/A) | yarn install --har |
| (N/A) | yarn install --no-lockfile |
| (N/A) | yarn install --pure-lockfile |
| npm install [package] | (N/A) |
| npm install --save [package] | yarn add [package] |
| npm install --save-dev [package] | yarn add [package] [--dev/-D] |
| (N/A) | yarn add [package] [--peer/-P] |
| npm install --save-optional [package] | yarn add [package] [--optional/-O] |
| npm install --save-exact [package] | yarn add [package] [--exact/-E] |
| (N/A) | yarn add [package] [--tilde/-T] |
| npm install --global [package] | yarn global add [package] |
| npm rebuild | yarn install --force |
| npm uninstall [package] | (N/A) |
| npm uninstall --save [package] | yarn remove [package] |
| npm uninstall --save-dev [package] | yarn remove [package] |
| npm uninstall --save-optional [package] | yarn remove [package] |
| npm cache clean | yarn cache clean |
| rm -rf node_modules && npm install | yarn upgrade |
- 初始化项目
npm init yarn init
- 从 package.json 安装依赖
npm install yarn
- 安装指定包到依赖或者开发依赖
npm install --save [package]
yarn add [package]
npm install --save-dev [package]
yarn add [package] [--dev/-D]
- 安装包到全局
npm install --global [package] yarn global add [package]
- 安装指定版本的包
npm install [package]@[version] yarn add [package]@[version]
- 重新下载所有包
npm reubild yarn install --force
- 卸载包
npm uninstall [package] npm uninstall --save [package] yarn remove [package] npm uninstall --save-dev [package]
- 升级包
rm -rf node_modules && npm install yarn upgrade
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!