yarn workspaces基本試用


初始化項目

yarn init -y

添加workspaces 支持

修改package.json

{
"name": "second",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private":true,
"workspaces":["common","server"]
}

創建common && server 模塊

  • common
yarn init -y
├── index.js
└── package.json
index.js
module.exports={
name:"dalong-common",
type:"common"
}
  • server 調用common
yarn init -y
├── index.js
└── package.json
package.json
{
"name": "server",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"common": "1.0.0"
}
}
index.js
const common =require("common");
console.log(common);

安裝模塊

yarn install 

效果

代碼調用測試

node server
{ name: 'dalong-common', type: 'common' }

lerna 格式支持

  • 項目結構
├── package.json
├── packages
│ ├── common
│ │ ├── index.js
│ │ └── package.json
│ └── server
│ ├── index.js
│ └── package.json
└── yarn.lock
主要是 package.json

{
"name": "second",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private":true,
"workspaces":[
"packages/*"
]
}
以及packages 文件夾,其他地方不變
yarn install && node  packages/server

幾個問題

  • 包版本的問題
比如我的項目comon 默認是1.0.0 但是如果我server 引用了1.1.0 ,但是因為本地是沒有的,
會使用官方倉庫的,這個實際上,在使用中還是要確定好版本,同時還是需要私服進行歸檔
進行歷史版本的管理,確定好包的名稱,使用私服格式

說明

版本管理本來就是比較復雜的事情,類似yarn 的有lerna 同時又一個概念monorepo,
bable  react 就是使用類似的方式進行官方組件的維護的,還是不錯的,減少了包的問題
但是也有缺點,就是依賴過大,總的來說yarn 還是比較簡單的,lerna 功能比較多,但是
實際上內部團隊用的可能沒有那么多,同時比較好的地方是三方以及本地依賴統一一個地方,依賴包
不用必須提交代碼倉庫

參考資料

https://yarnpkg.com/blog/2017/08/02/introducing-workspaces/
https://lernajs.io/
https://github.com/rongfengliang/yarn-workspaces-demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM