yarn的基本使用

264 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

yarn 工具包安装

安装yarn有以下两种方式:

  1. 先安装 node,然后直接使用npm install -g yarn来安装yarn
  2. 百度搜索yarn官网,然后下载对应操作系统的安装包进行安装。

使用yarn -v来测试yarn是否安装成功。

注意:通常情况下不建议通过npm进行安装,因为npm安装是非确定性的,程序包没有签名,并且npm除了做了基本的 SHA1 哈希之外不执行任何完整性检查,这给安装系统程序带来了安全风险。

基于这些原因,这里强烈建议通过官网找到最适合你的操作系统的安装方法来安装 yarn。

yarn 常用命令

作用npmYarn
初始化npm inityarn init
安装npm installyarn
卸载npm uninstallyarn remove
全局安装npm install xxx -- global(-g)yarn global add xxx
安装包npm install xxx -save(-S)yarn add xxx
开发模式安装包npm install xxx -save-dev(-D)yarn add xxx -dev(-D)
更新npm update -saveyarn upgrade
全局更新npm update -globalyarn global upgrade
卸载包npm uninstall xxx [-save/-save-dev]yarn remove xxx
清除缓存npm cache cleanyarn cache clean
重装rm -rf node_modules && npm installyarn upgrade
淘宝镜像源设置npm config set registry registry.npm.taobao.org/ -gyarn config set registry registry.npm.taobao.org/ -g && yarn config set sass_binary_site cdn.npm.taobao.org/dist/node-s… -g
镜像源查看npm get registryyarn config get registry

初始化新项目

yarn init

安装项目全部依赖

以下两命令均可。

yarn
​
yarn install

项目运行

yarn dev
​
yarn run dev

项目打包

yarn build

添加依赖包

yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

将依赖项添加到不同依赖项类别

分别添加到devDependenciespeerDependenciesoptionalDependencies类别中:

yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional

升级依赖包

yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

移除依赖包

yarn remove [package]

yarn 与 npm 的恩怨情仇

yarn是在npm之后推出的一个新的 JS 包管理工具,如官网所言,yarn是为了弥补npm的一些缺陷而出现的。

yarnnpm的主要区别:

  1. yarn安装包的速度更快,yarn是同步执行所有任务,而npm是按照队列去执行每个package。另外yarn采用离线模式,如果之前已经安装过一个软件包,用yarn再次安装时会直接从缓存中获取,而不用像npm那样再从网络下载。
  2. yarn解决了由于语义版本控制而导致的npm的不确定性的问题,通过安装时创建的默认文件,确认使用的库的版本相同。
  3. yarn的输出就简洁很多,直观且直接的打印必要信息,而npm的输出信息就比较冗长。
  4. yarn的语义比npm更加清晰,它改变了一些npm命令的名称。

npm 的未来

yarn出现之后,npm5.0开始做了一些改进。

  1. 默认新增了类似yarn.lockpackage-lock.js
  2. git 依赖支持优化:这个特性在需要安装大量内部项目(例如在没有自建源的内网开发),或需要使用某些依赖的未发布版本时很有用。在这之前可能需要使用指定commit_id的方式来控制版本。
  3. 文件依赖优化:在之前的版本,如果将本地目录作为依赖来安装,将会把文件目录作为副本拷贝到node_modules中。而在npm5.0中,将改为使用创建symlinks的方式来实现(使用本地tarball包除外),而不再执行文件拷贝。这将会提升安装速度。目前yarn还不支持。

npm5.0在速度和使用上确实有了很大的提升,不过还是比较推荐尝试一下yarn