Yarn入门介绍

2018-05-12  本文已影响26人  梅_梅

概述

yarn

在2016年10月11日facebook 公开了新的javascript包管理工具 yarn, 用来替代目前被广泛使用的npm(nodejs 自带的包管理工具),本文将介绍yarn工具带来的优点和使用入门,以及对比npm解决了什么问题,带来哪些便利。有需要的朋友们下面来一起看看吧。

Yarn与npm对比

npm init -y
npm install globule@0.1.0 -S
npm install babel-generator@6.19.0 -S
npm install babel-helper-define-map@6.18.0 -S

我们这里安装了3个包都依赖于lodash,不过globule依赖lodash@1.0.3,另外两个依赖lodash@4.x。
现在目录依赖结构如下


npm依赖嵌套.png

这时假设我们在项目里使用lodash,但是忘记重新安装lodash

var lodash = require(``'lodash'``);
console.log(lodash.VERSION); // v1.0.3

另一个同事获取项目代码,执行npm install, 这时的目录依赖结构为
可以看到第一层依赖的lodash变成了4.x版本,这样就造成了依赖版本不一致的问题。而yarn则会保证无论怎样引入的顺序,目录依赖结构都是一致的,确保不会发生这样的BUG。

yarn 的安装配置

安装

npm install -g yarn

配置源

这里使用淘宝源

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

yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass  -g

命令

初始化项目

yarn init

会在根目录下生成一个package.json,与npm类似

添加包

添加包:yarn add [pkg-name] ,会自动安装最新版本,会覆盖指定版本号

yarn add jquery

添加多个包

一次性添加多个包:yarn add [pkg-name1] [pkg-name2]

yarn add bootstrap zepto

更新包

将包更新到指定版本:yarn upgrade [pkg-name]@ver

yarn upgrade jquery@3.0.0

更新包到最新版本

将包更新到最新版本:yarn upgrade –latest [pkg-name]

yarn upgrade –latest jquery

删除包

删除包:yarn remove [pkg-name]

yarn remove jquery

一次删除多个包

一次删除多个包:yarn remove [pkg-name1] [pkg-name2]

yarn remove bootstrap zepto

安装项目依赖包

用于根据安装package.json里所有包,并将包及它的所有依赖项保存进 yarn.lock

yarn install                      
yarn install --flat           //安装一个包的单一版本
yarn install --force           //强制重新下载所有包
yarn install --production   //只安装dependencies里的包
yarn install --no-lockfile  //不读取或生成yarn.lock
yarn install --pure-lockfile //不生成yarn.lock

yarn.lock 自动锁定安装包版本

Npm 有一个名为 shrinkwrap 的特性,其目的是在生产环境中使用时锁定包依赖。shrinkwrap 的挑战是每个开发者都必须手动运行 npm shrinkwrap 生成 npm-shrinkwrap.json 文件。
使用 Yarn,则截然不同。在安装过程中,会自动生成一个 yarn.lock 文件,yarn.lock 会记录你安装的所有大大小小的。有点类似 PHP 开发者们所熟悉的 composer.lock。yarn.lock 锁定了安装包的精确版本以及所有依赖项,只要你不删除 yarn.lock 文件,再次运行 yarn install 时,会根据其中记录的版本号获取所有依赖包。有了这个文件,你可以确定项目团队的每个成员都安装了精确的软件包版本,部署可以轻松地重现,且没有意外的 bug。你可以把 yarn.lock 提交到本库里,这样其他签出代码并运行 yarn install时,可以保证大家安装的依赖都是完全一致的。

上一篇下一篇

猜你喜欢

热点阅读