vlambda博客
学习文章列表

Vue 学习笔记(三十四):yarn

前端的东西真是又多又杂,下了个 vue 小项目,里面有 yarn.lock 文件。这里了解一下 yarn

简介

Yarn 是一个包管理器。类似 npm。可以通过 brew 安装。官网:https://yarn.bootcss.com

yarn 优点

  • 极其快速,Yarn会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率。

  • 特别安全,Yarn会在每个安装包被执行前校验其完整性

  • 超级可靠, Yarn使用格式详尽而又简洁的lockfile文件和确定性算法来安装依赖,能够保证在一个系统上的运行的安装过程也会以同样的方式运行在其他系统上

yarn.lock 文件

官方文档对 yarn.lock 的说明: 

为了跨机器安装得到一致的结果,Yarn 需要比你配置在 package.json 中的依赖列表更多的信息。Yarn 需要准确存储每个安装的依赖是哪个版本。In order to get consistent installs across machines, Yarn needs more information than the dependencies you configure in your package.json. Yarn needs to store exactly which versions of each dependency were installed.
为了做到这样,Yarn 使用一个你项目根目录里的 yarn.lock 文件。这可以媲美其他像 Bundler 或 Cargo 这样的包管理器的 lockfiles。它类似于 npm 的 npm-shrinkwrap.json,然而他并不是有损的并且它能创建可重现的结果。(注:npm-shrinkwrap.json,是由命令 npm shrinkwrap 生成的,它的作用和 package-lock.json 的作用是一样的,都是用来锁定版本用的。现在有了 package-lock.json 之后就不怎么用 npm-shrinkwrap.json 了。)
Your yarn.lock file is auto-generated and should be handled entirely by Yarn. When you run either yarn or yarn add  , Yarn will generate a yarn.lock file within the root directory of your package.

yarn.lock 需要放入 git 等代码仓库中。

yarn 对比 npm

github上最新 star 对比(20200920) yarn 39k,npm 17.2k,yarn还是广受欢迎的。

常用命令对比

npm init                                              ---- yarn init
npm install ---- yarn
npm install [email protected] -g ---- yarn global add [email protected]
npm install [email protected] --save ---- yarn add [email protected]
npm install [email protected] --save-dev ---- yarn add [email protected] --dev
npm uninstall xxx --save(-dev) ----yarn remove xxx
npm run xxx ---- yarn run xxxx

更多:

npm (v5) Yarn
npm install yarn add
(N/A) yarn add --flat
(N/A) yarn add --har
npm install --no-package-lock yarn add --no-lockfile
(N/A) yarn add --pure-lockfile
npm install [package] --save yarn add [package]
npm install [package] --save-dev yarn add [package] --dev
(N/A) yarn add [package] --peer
npm install [package] --save-optional yarn add [package] --optional
npm install [package] --save-exact yarn add [package] --exact
(N/A) yarn add [package] --tilde
npm install [package] --global yarn global add [package]
npm update --global yarn global upgrade
npm rebuild yarn add --force
npm uninstall [package] yarn remove [package]
npm cache clean yarn cache clean [package]
rm -rf node_modules && npm install yarn upgrade
npm version major yarn version --major
npm version minor yarn version --minor
npm version patch yarn version --patch


If you want to try Yarn out on your existing npm project, just try running:

yarn

基本语法

初始化一个新项目 yarn init
添加依赖包
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
将依赖项添加到不同依赖项类别中

分别添加到 devDependencies、peerDependencies 和 optionalDependencies 类别中:bash 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

或者:

yarn install