yran 和 npm 的区别

yarn和npm 都是包管理工具,但是yarn是为了弥补 npm 的一些缺陷而出现的

yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具

npm 的缺陷:

npm install下载速度慢

重新 install 时速度依旧慢同一个项目,每次install,都是从网上下载

安装的无法保持一致性

原因是因为 package.json 文件中版本号的特点导致的,下面三个版本号在安装的时候代表不同的含义。

"5.0.3" # 表示安装指定的5.0.3版本

"~5.0.3" # 表示安装5.0.X中最新的版本

"^5.0.3" # 表示安装5.X.X中最新的版本

(波浪符号(~)〕∶他会更新到当前minor version(也就是中间的那位数字)中最新的版本。

波浪符号处曾经npm安装时候的默认符号,现在已经变为了插入符号。


插入符号(^)∶这个符号就继得非常的灵活了,他将会把当前库的版本更新到当前major verson (也就是第一位数字)中最新的版本。


通俗理解:
波浪号为补丁版本最新版插入符号为小版本最新版

使用 npm 安装多个 js 包时,包会在同一时间下载和安装。

安装过程中,其中一个包抛出了一个异常,但 npm 会继续安装其他包,所以错误信息就会在一大堆提示信息中丢失掉,以至于直到执行前,都不会发现实际发生的错误

yarn 优点

1.速度快

1.1并行安装
无论 npm 还是 yarn 在安装包的时候,都会执行一系列任务。 npm 是按照队列执行每个 package,所以 npm 是串行的。
而 yarn 是并行的,它同步执行所有任务,性能得到了极大的提升。

1.2离线模式
如果使用 yarn 已经安装过一个软件包,再次安装时 yarn 会在之前的缓存中获取,而不会像 npm 再次从网络中下载。

2.安装版本统一

为了保持安装版本的统一性,yarn 有一个锁定文件(lock file)。它记录了被确切安装上的模块的版本号。

每次只要新增一个模块,Yarn 就会更新 yarn.lock 这个文件。这么做保证了每一次拉取同一个项目依赖时,使用的都是一样的模块版本。

npm 也有办法实现使用相同版本的 packages

但需要开发者执行 npm shrinkwrap 命令。这个命令将会生成一个锁定文件,在执行 npm install 的时候,该锁定文件会先被读取,和 Yarn 读取 yarn.lock 文件一个道理。

npm 和 Yarn 两者的不同之处在于:Yarn 默认会生成这样的锁定文件,而 npm 要通过 shrinkwrap 命令生成 npm-shrinkwrap.json 文件,只有当这个文件存在的时候,packages 版本信息才会被记录和更新。

3.输出简洁

npm 的输出信息比较冗长。在执行 npm install 的时候,命令行里会不断地打印出所有被安装上的依赖。

Yarn :默认情况下,结合了 emoji 直观且直接地打印出必要的信息,也提供了一些命令供开发者查询额外的安装信息。

多注册来源处理
所有的依赖包,不管他被不同的库间接关联引用多少次,安装这个包时,只会从一个注册来源去装

语义化进行了修改
yarn 改变了一些 npm 命令的名称,比如 yarn add/remove 安装卸载模块,而 npm 是 install/uninstall 安装卸载模块。

安装

1.安装node

下载地址:Node.js


2.安装yarn

npm install -g yarn

3、切换淘宝镜像

yarn config set registry https://registry.npm.taobao.org

这样安装完就可以使用yarn了

yarn和npm命令对比

yarn 命令

初始化                                     yarn init                                                  
安装依赖                                 yarn install 或者 yarn                            
新增依赖                                 yarn add element-ui                             
删除依赖                                 yarn remove element-ui                        
更新依赖                                 yarn upgrade                                                  
全局安装或删除                     yarn global remove vue-cli                      
同时下载多个                         yarn add axios vue-axios           

npm命令

初始化                                       npm init
安装依赖                                   npm install pnpm install
新增依赖                                   npm install element-ui --save pnpm i element-ui
删除依赖                                   npm uninstall element-ui --save …
更新依赖                                   npm update pnpm update
全局安装或删除                       npm uninstall vue-cli -g …
同时下载多个                           npm install --save axios vue-axios

你可能感兴趣的:(npm,前端,node.js,yarn)