@@ -4,20 +4,56 @@ zenn-editor リポジトリで管理されているパッケージの開発ガ
44
55## セットアップ
66
7- zenn-editor リポジトリは [ lerna] ( https://github.com/lerna/lerna ) によるモノレポ構成です。
7+ zenn-editor リポジトリは [ pnpm ] ( https://pnpm.io/ja/ ) + [ Turborepo ] ( https://turbo.build/repo ) + [ lerna-lite ] ( https://github.com/lerna-lite /lerna-lite ) によるモノレポ構成です。
88
99それぞれのプロジェクトは ` ./packages ` に配置されています。
1010
11- リポジトリをクローンし、プロジェクトルートで ` yarn install` を実行することで、` ./packages ` にある全てのプロジェクトの依存モジュールがインストールされます。
11+ リポジトリをクローンし、プロジェクトルートで ` pnpm install` を実行することで、` ./packages ` にある全てのプロジェクトの依存モジュールがインストールされます。
1212
1313``` shell
1414$ git clone https://github.com/zenn-dev/zenn-editor.git
15- $ yarn install
15+ $ pnpm install
1616```
1717
18- 同様に、テストやビルドもプロジェクトのルートで ` yarn test ` 、` yarn build ` を実行することで、` ./packages ` にある全てのプロジェクトに対して行うことができます。これは依存するモジュールに対するテストや動作確認をしたい時に便利です。
18+ ::: caution
19+ 上記のコマンドを実行するには、事前に pnpm のインストールが必要です。<br />
20+ インストール方法: https://pnpm.io/ja/installation
21+ :::
22+
23+
24+ 同様に、テストやビルドもプロジェクトのルートで ` pnpm test ` 、` pnpm build ` を実行することで、` ./packages ` にある全てのプロジェクトに対して行うことができます。これは依存するモジュールに対するテストや動作確認をしたい時に便利です。
1925
2026## ブランチ
2127
2228- ` canary ` : 開発用のブランチです。通常は` canary ` ブランチから新しいブランチを切って、PRで` canary ` ブランチにマージします。マージされると、` X.Y.Z-alpha.0 ` のようなバージョンが自動的にリリースされます。
2329- ` main ` : リリース用のブランチです。通常は` canary ` ブランチから` main ` ブランチにマージします。マージされると、` X.Y.Z ` のようなバージョンが自動的にリリースされます。
30+
31+
32+ ## Monorepo で使用しているライブラリ
33+
34+ zenn-editor では以下のライブラリを使用して、Monorepo 環境を構築しています。
35+
36+ ### pnpm
37+
38+ ** 公式サイト:** https://pnpm.io/ja/
39+
40+ npm、yarn などと同じパッケージマネージャーです。
41+ シンボリックリンクを利用した独自構成で node_modules を管理することにより、高速で安全なパッケージ管理を可能とします。
42+ zenn-editor では、workspace 機能によって Monorepo のパッケージを管理しています。
43+
44+
45+ ### Turborepo
46+
47+ ** 公式サイト:** https://turbo.build/repo
48+
49+ 管理している workspace を依存関係を考慮してコマンドを実行するツールです。
50+ zenn-editor では、ビルドやテストなどを実行する時に使用しています。
51+
52+
53+ ### lerna-lite
54+
55+ ** 公式サイト:** https://github.com/lerna-lite/lerna-lite
56+
57+ [ lerna] ( https://lerna.js.org/ ) から ` version ` と ` publish ` 機能だけを抜き出したバージョン管理ツールです。
58+ 基本的な使い方は lerna と一緒ですが、多くの Monorepo 機能はデフォルトでは含まれていないことに注意してください。
59+ zenn-editor では、workspace をリリースする際に使用しています。
0 commit comments