Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

yarn用法 #8

Open
deepthan opened this issue Jan 8, 2018 · 0 comments
Open

yarn用法 #8

deepthan opened this issue Jan 8, 2018 · 0 comments

Comments

@deepthan
Copy link
Owner

deepthan commented Jan 8, 2018

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可以做什么呢?
    1. yarn add : 下载包
    2. yarn remove : 卸载包
    3. yarn init: 初始化package.json
    4. yarn installyarn: 安装所用 package.json 文件中的依赖包
    5. 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant