Lerna 是一種工具,針對 使用 git 和 npm 管理多軟件包代碼倉庫的工做流程進行優化。 多包管理器javascript
安裝
npm i lerna -g
命令
- init 項目初始化
lerna init // 默認初始化 lerna init --independent // 使用獨立版本模式 lerna init --exact
init 生成目錄java
packages/ // 默認包目錄 package.json lerna.json // lerna 配置
- bootstrap 爲全部包安裝依賴
lerna bootstrap
- add 添加依賴, 相似 npm install
lerna add <package> // 爲全部包安裝依賴 lerna add <package> --scope=<targe> // 只爲 targe 安裝 package lerna add <package> --dev // 標記爲開發依賴
- run 執行包內 scripts 命令
lerna run test // 執行全部包內的 test 命令 lerna run --scope=root dev // 只執行root包內的 dev 命令
- create 建立新包
lerna create pk-name // 在默認包管理目錄生成包 pk-name lerna create pk-name src // 在src目錄下生成包 pk-name, 指定包生成目錄
- exec 執行任意指令
lerna exec -- rm -fr lib // 刪除全部包內的 lib 目錄 lerna exec --scope root -- ls // 查看 root 包內目錄
- publish 發佈包
- updated 更新包
- clean 刪除全部包內 node_modules
- changed 列出有更新的包
- list 列出公共包
lerna ls // 顯示全部公開包, package.json => { private:false } lerna ls -a // 顯示全部包, 包含私有包
- import 導入本地包
- link 建立依賴鏈接
- info 顯示基礎信息
learn.json 配置
{ "version": "1.1.3", // 統一包版本, 爲 "independent" 時,各個包獨立管理版本 "npmClient": "yarn", // 包命令客戶端 "npmClientArgs": [ "--production" ], // 包命令參數 "packages": [ // 包管理目錄 "packages/*", "apps/*" ], "command": { // 命令配置 "publish": { "ignoreChanges": ["ignored-file", "*.md"], "message": "chore(release): publish", "registry": "https://npm.pkg.github.com" }, "bootstrap": { "ignore": "component-*", "npmClientArgs": ["--no-package-lock"] } }
文檔
官網文檔node
中文文檔git
lerna 的基礎使用github
本文同步分享在 博客「直立猿」(JianShu)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。json