ユーザー側と管理側でアプリを分けたいけれども、ドメインに関する型定義やライブラリは共通で扱いたいと思ったわけです。
どうやるのかな、と思って朝から調べていて、なんとなく方法がわかったのでそのお話です。
結論から言うと yarn workspace を使います。
構成としては以下のような感じです。
root
- package.json
- tsconfig.json
- project
- user
- package.json
- tsconfig.json -> root/tsconfig.json
- manager
- package.json
- tsconfig.json -> root/tsconfig.json
rootディレクトリにpackage.jsonを配置してworkspacesとしてproject/user
, project/manager
を指定します。
それぞれのprojectのtsconfig.jsonはrootに配置したtsconfig.jsonをextendsする形にします。
ざっくりとそんな形で複数アプリをモノリポで管理できるようになりました。
よかった。