Yarn
## yarn 推薦全局安裝
npm install yarn -g
yarn help COMMAND
初始化一個(gè)項(xiàng)目
yarn init 相當(dāng)
npm inityarn add添加一個(gè)包 相當(dāng)
npm install [packageName] --save
yarn add [package] --dev 相當(dāng)npm install [package] --save-dev
yarn add webpack
yarn add [package]@[version]
yarn add [package]@[tag]
// yarn 安裝package不推薦全局安裝-
yarn upgrade更新一個(gè)包 相當(dāng)
npm update webpackyarn upgrade webpack yarn upgrade [package]@[version] yarn upgrade [package]@[tag] -
--offline離線安裝 相當(dāng)
npm install [packageName] --save-devyarn add browser-sync --offline browser-sync start --server --files "**" -
yarn cache檢查本地是否有當(dāng)前包
yarn cache ls -
yarn remve移除本地依賴包 相當(dāng)
npm uninstall [package]yarn remove [package] -
yarn install安裝包依賴 相當(dāng)
npm installyarn 或者 yarn install -
yarn publish發(fā)布到github上即項(xiàng)目倉庫里面
yarn publish
Yarn的工作流
- 創(chuàng)建一個(gè)新項(xiàng)目工程
yarn init - 添加/更新/刪除依賴關(guān)系
- 安裝/重新安裝你的依賴
- 使用版本控制工具git
- 持續(xù)集成
添加依賴關(guān)系
yarn add [package] == npm install [package]
將會(huì)自動(dòng)將package@version添加進(jìn) package.json文件中的 "dependencies"中
-
自動(dòng)更新.lock文件
dependencies: 正常的運(yùn)行過程中的依賴 瀏覽器跑的時(shí)候
devDependencies: 開發(fā)模式 所用的依賴
peerDependencies: 當(dāng)你發(fā)布項(xiàng)目的時(shí)候 可以指定該依賴
optionalDependencies: 可有可無,表示在安裝失敗的時(shí)候一個(gè)備選的依賴保證過程
bundleDependencies: 發(fā)布項(xiàng)目的時(shí)候所用的依賴 不是從npm來的 一起打包發(fā)布到npm上yarn add --dev to add to devDependencies yarn add --peer to add to peerDependencies yarn add --optional to add to optionalDependencies -
安裝依賴 (同 npm install)
- yarn
- yarn install
yarn install --flat ##安裝一個(gè)且只有一個(gè)版本的包
yarn install --force ##強(qiáng)制加載獲取所有的包
yarn install --production ## 只會(huì)安裝dependencies, 不會(huì)安裝devDependencies
## 這個(gè)時(shí)候的代碼只提供運(yùn)行 不提供開發(fā)
-
版本控制器
yarn.lock 保證每個(gè)包的版本的具體依賴 保證項(xiàng)目能通過安裝命令執(zhí)行正常
-
Yarn Cache
yarn cache ls # 將打印出每個(gè)緩存方案。 yarn cache dir package# 安裝在本地的什么位置 yarn cache clean # 對(duì)本地緩存進(jìn)行強(qiáng)制清除 再執(zhí)行yarn cache ls將找不到緩存 # 改變默認(rèn)的緩存目錄 yarn config set cache-folder <path> yarn <command> --cache-folder <path> -
Yarn Config
yarn config set <key> <value> [-g|--global] #設(shè)置配置項(xiàng) yarn config set init-license BSD-2-Clause yarn config set registry https://registry.npm.taobao.org # 修改鏡像獲取位置'https://registry.yarnpkg.com' 默認(rèn)的鏡像位置 yarn config get <key> # 獲取配置項(xiàng)信息 yarn config get init-license yarn config delete <key> # 刪除某一配置項(xiàng) yarn config delete test-key yarn config list # 顯示當(dāng)前所有的配置
-
Yarn info
顯示包的詳細(xì)信息 yarn info <package> [<field>]yarn info react yarn info react --json # 以json的格式顯示 yarn info react@15.3.0 # 查看詳細(xì)版本信息 yarn info react description # 只看描述信息 yarn info react time ## 如果指定的字段是又一個(gè)嵌套對(duì)象,返回子樹 yarn info react readme 讀取readme字段 -
Yarn Global
Yarn不推薦將依賴安裝在全局環(huán)境下面yarn global <add/bin/ls/remove/upgrade> [--prefix] yarn global add weback ## 把包安裝在全局的環(huán)境下面 -
Yarn Bin
displays the location of the yarn bin folder. 顯示yarn的安裝目錄bin文件夾yarn global bin -
Yarn Why
yarn why jest # 確定為什么包已經(jīng)安裝,詳細(xì)描述其他包依賴于它 # 可以是一個(gè)文件夾 也可以是一個(gè)js文件 yarn why node_modules/once yarn why node_modules/once/once.js -
yarn clean 清除npm包下面一些module下沒有用的文件
yarn check # 檢查包的完整性 yarn generate-lock-entry # 生成.lock文件 -
Yarn Run
類似于npm runpackage.json { "name": "my-package", "scripts": { "build": "babel src -d lib", "test": "jest" } } yarn run [script] [-- <args>] yarn run test yarn run test -- -o --watch 執(zhí)行jest -o --watch yarn run 沒有參數(shù)的的話 會(huì)列出所有的scripts里的執(zhí)行腳本 -
Yarn Ls
yarn ls ## 給出根目錄下面已經(jīng)安裝的依賴 yarn global ls yarn list [--depth] yarn list --depth=0 ## 限制輸出的深度 -
Yarn Link & Yarn Unlink
yarn link [package...] ## 將網(wǎng)絡(luò)上的包連接到本地進(jìn)行引用 調(diào)試 yarn unlink [packae...] 解除引用 Yarn Login & Yarn Logout
登錄npm的公共倉庫, 發(fā)布一個(gè)包的時(shí)候 需要一個(gè)npm的賬號(hào)
登錄之后 用yarn publish-
Yarn Tag
yarn add your-package-name@stable yarn add your-package-name@canary- latest 當(dāng)前版本的包
- stable包的最新穩(wěn)定版本,通常長期支持(LTS)
- beta 最新發(fā)布前和/或穩(wěn)定,用于共享即將改變之前完成
- canary 如果你的項(xiàng)目是頻繁更新,許多人依靠你可能更早使用這個(gè)共享代碼。
- dev 有時(shí)你希望能夠測試出一個(gè)通過注冊(cè)表修改當(dāng)你還在研究的東西,這是非常有用的
-
Version和Package
-
添加一個(gè)名為<tag>標(biāo)記為一個(gè)特定的<version>
yarn add your-package-name@<version> -
列出所有的標(biāo)簽<包>。如果未指定的<包>將默認(rèn)包你當(dāng)前的目錄內(nèi)
yarn add your-package-name@<tag> yarn tag add <package>@<version> <tag> <package>。 yarn tag rm <package> <tag> yarn tag ls [<package>]
-