lernaを使用して複数のキットを管理する
2032 ワード
1つのソリューションが生成されると、複数のソリューションが生成されることは避けられません.
メリット:各サブモジュール間の依存を気にする必要はありません. 開発サブモジュールは開発環境の依存を気にする必要がなく、外層が統一的に管理され、開発がより便利である はサブモジュールを切り替える必要がなく、すべてのサブモジュールは同じプロジェクト にある.サブモジュール間の開発も相対的に独立している .依存関係を自動的に変更し、コミットし、パブリッシュし、tag を作成します.
劣勢:倉庫の体積は急速に増加し、サブモジュールの増加に伴い、倉庫の体積は非常に膨大になる
バージョンはindependentで各サブパッケージの独立管理バージョンを表します
例を挙げる
エラー再発注
npm
パッケージは、異なるユーザーグループに適していますが、これらのパッケージは互いに依存し、管理され、複雑である可能性があります.lerna
は、マルチパッケージの管理を容易に支援します.lerna優劣
メリット:
lerna
が管理します.発注劣勢:
lerna初期化
lerna init
修正lerna.json
バージョンはindependentで各サブパッケージの独立管理バージョンを表します
{
"packages": [
"packages/*"
],
"version": "independent",
"command": {
"bootstrap": {
"npmClientArgs": ["--hoist"]
}
}
}
lerna link convert
を使用して依存をルートに抽出することができ、yarn workspace
と同様にインストール依存
$ npm i #
$ lerna bootstrap #
$ lerna add {module} --scope={package} #
$ lerna run start --scope={package} #
例を挙げる
$ #
$ lerna run start
$ # antd , scope ,
$ lerna run start --scope antd
$ # --stream ,
$ lerna run start --scope antd --stream
依存のアンインストール
lerna exec -- [..args] #
//
lerna exec --scope=antd yarn remove webpack # antd webpack
インストール依存の削除
lerna clean
パッケージが変更されたかどうかを確認
lerna updated/diff
ローカルのすべてのパッケージのリストを表示
lerna list
パブリッシュ前に変更されたパッケージを表示
lerna changed
lerna発注
lerna publish
lerna version # git , npm
エラー再発注
lerna publish from-git
lerna publish from-package