2018年学习计划(yarn篇)

这里只记一些感觉比较重要的内容。

什么是yarn

Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。它并没有试图完全取代 npm。Yarn 同样是一个从 npm 注册源获取模块的新的 CLI 客户端。注册的方式不会有任何变化 —— 你同样可以正常获取与发布包。它存在的目的是解决团队在使用 npm 面临的少数问题。当然,在 Node 版本断更替中,Npm 本身也在积极更新。

npm 与 yarn 常用命令对比

Npm Yarn 功能描述
npm install(npm i) yarn install(yarn) 根据 package.json 安装所有依赖
npm i –save [package] yarn add [package] 添加依赖包
npm i –save-dev [package] yarn add [package] –dev 添加依赖包至 devDependencies
npm i -g [package] yarn global add [package] 进行全局安装依赖包
npm update –save yarn upgrade [package] 升级依赖包
npm uninstall [package] yarn remove [package] 移除依赖包

如何探查 npm 包

如果你想从cli打开模块的主页,你可以这样做:

1
npm home axios

要检查未决的问题或公开的路线图(如果有的话),你可以试试这个:

1
npm bugs axios

另外,如果你只是想检查模块的 git 仓库,请输入:

1
npm repo axios

几个感觉有用的yarn命令

  • yarn add -D/–dev

安装到devDependencies依赖中

  • yarn add

安装到dependencies依赖中

  • yarn add -E/–exact

安装包的精确版本,默认是安装包的主要版本里的最新版本。 比如说, yarn add foo@1.2.3 会接受 1.9.1 版,但是 yarn add foo@1.2.3 –exact 只会接受 1.2.3 版。

  • yarn cache dir

显示yarn缓存的目录,我电脑默认:C:\Users\Administrator\AppData\Local\Yarn\Cache\v2

通过yarn config set cache-folder <path>改变缓存目录,不然放在C盘太占空间了。通过yarn cache clean清空掉。

检测包完整性

  • yarn check

验证当前项目 package.json 里的依赖版本和 yarn 的 lock 文件是否匹配。

  • yarn check –integrity

验证当前项目 package.json 里包内容的版本和 hash 值是否与 yarn 的 lock 文件一致。 这有助于验证包依赖没有更改。

  • yarn check –verify-tree

检查node_modules下的dependencies依赖包是否存在和版本是否正确。

假设一个项目:package.json中依赖bootstrap3.x版本,假设:

  • 更改package.json中bootstrap版本改成4.x,分别运行以上三句命令:

    • yarn check:

      1
      2
      3
      error Lockfile does not contain pattern: "bootstrap@4.x"
      error "bootstrap" is wrong version: expected "4.1.3", got "3.3.7"
      error Found 2 errors.
- `yarn check --integrity`:

1
2
error Lockfile does not contain pattern: "bootstrap@4.x"
error Found 1 errors.
- `yarn check --verify-tree`:
1
2
error "bootstrap" is wrong version: expected "4.x", got "3.3.7"
error Found 1 errors.
如上结果,可以看出`--integrity`主要是判断`package.json`是否被手动改坏掉了,`--verify-tree`用于判断`node_modules`下是否已经根据`package.json`更新了版本。 > 个人感觉:应该可以在项目启动或打包前运行`yarn check --verify-tree`,因为这个速度比较快;在多人合作开发中可以告知其他开发者要手动运行`yarn`更新依赖版本了。
  • yarn create []

从一些以create-*开头的脚手架生成项目。比如:yarn create react-app my-app相当于yarn global add create-react-app && create-react-app my-app

  • yarn help

查看命令帮助

  • yarn info []

查看某个包的描述。yarn info <package> version查看某个包的所有可用版本。

  • yarn install –flat

仅为某一个包安装一个确定版本,如果有不同版本依赖将会让你选择。它将会在在package.json文件增加resolutions字段。

  • yarn outdated [package…]

列出一个或多个程序包依赖项的版本信息。

  • yarn upgrade [package]… –latest|-L [–caret | –tilde | –exact] [–pattern]

--latest标识升级到最新版本。通过--caret、或--tilde指定使用什么类型的版本。比如:yarn upgrade --latest --caret升级boostrap: '3.x'bootstrap: ^4.1.3

参考