ユーザー側と管理側でアプリを分けたいけれども、ドメインに関する型定義やライブラリは共通で扱いたいと思ったわけです。

どうやるのかな、と思って朝から調べていて、なんとなく方法がわかったのでそのお話です。

結論から言うと 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する形にします。

ざっくりとそんな形で複数アプリをモノリポで管理できるようになりました。

よかった。

Last modified: 2021年2月7日