yarn用法
deepthan opened this issue · 0 comments
deepthan commented
Yarn 是由 Facebook,google,Exponent 和 Tilde 制作的一种新的JavaScript 软件包管理器。其目的是解决团队在 npm 面临的问题:
- 安装包不足够 快/连续
- 有安全隐患,npm 允许安装包执行代码
yarn 是从 npm 注册表获取模块的唯一的一个新的CLI客户端。对注册表本身没有任何的改变——你依旧可以跟以前一样获取和发布包。
Yarn vs npm: 功能上的差异
- yarn.lock 文件: 每次安装一个包它的版本会自动写入lock文件,下次下载的时候会直接下载这个版本,而npm不会自动创建
- 平行安装 :yarn 并行的执行下载任务而npm是按顺序下载
- 更简洁的输出(cleaner output):yarn输出信息非常少而npm 的输出非常详细
一. 怎么安装yarn?
- 通过npm来安装
npm install yarn -g
- 其它三种安装方式, 去安装
二. 下包慢咋办?设置淘宝代理!(下的还是原来的包,只是从淘宝端走的流量)
yarn config set registry https://registry.npm.taobao.org
三. 怎么用?
- 我想下载typescript
安装到 package.json的"devDependencies"下
npm install --save-dev typescript
yarn是酱紫滴
yarn add typescript --dev
安装到 package.json的"dependencies"下
npm install --save typescript
yarn是酱紫滴
yarn add typescript
安装全局依赖包
npm install -g typescript
yarn是酱紫滴
yarn add global typescript
- 才发现我用的是php,卸载吧
npm uninstall typescript
yarn remove typescript
- 不对,我又回来做前端项目了,yarn可以做什么呢?
yarn add
: 下载包yarn remove
: 卸载包yarn init
: 初始化package.jsonyarn install
或yarn
: 安装所用 package.json 文件中的依赖包yarn self-update
:更新yarn,我都控制不住我记几。
四. 其他命令
-
yarn licenses [ ls | generate-disclaimer ]
yarn licenses ls
列出了所有安装包的许可证。
其实你可以在 yarn.lock文件里面查看依赖包的所有相关信息:- version
- resolved
- dependencies
yarn licenses generate-disclaimer
生成一个免责声明包含所有执照的所有包的内容。
// yarn licenses ls
├─ License: MIT
│ └─ URL: http://github.com/yargs/yargs.git
├─ yargs@7.1.0
│ ├─ License: MIT
│ └─ URL: http://github.com/yargs/yargs.git
├─ yargs@8.0.2
│ ├─ License: MIT
│ └─ URL: http://github.com/yargs/yargs.git
├─ yeast@0.1.2
│ ├─ License: MIT
│ └─ URL: https://github.com/unshiftio/yeast.git
├─ yn@2.0.0
**在你的项目中,你必须包括项目的许可证,在这些状态下,这是一个相当有用的工具。
- yarn why [ package ]
让你弄清楚你的包为什么会被下载。
// yarn why sass-loader
yarn why v1.3.2
warning You are using Node "7.7.1" which is not supported and may encounter bugs or unexpected behavior. Yarn supports the following semver range: "^4.8.0 || ^5.7.0 || ^6.2.2 || >=8.0.0"
[1/4] Why do we have the module "sass-loader"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
info This module exists because "@angular/cli" depends on it.
Angular 里面用yarn
Angular Cli的包管理器预设为NPM,当执行 ng new 时会产生新的项目并以npm来下载所有的依赖。
更改包管理器为yarn
ng set --global packageManager=yarn
之后下载新的依赖包将会用yarn来下载,比NPM快很多。
如果想更改回预设的NPM
ng set --global packageManager=npm