The Sandbox for learning React.
| Sub package | 概要 | 備考 |
|---|---|---|
catalog |
当該プロジェクトにある様々な Story コンポーネントを import することで、一覧表示および動作確認が出来ます。 |
https://learn-react.wakamsha.net/ |
doc |
各種サブパッケージ・コードベースの JSDoc コメントからドキュメントページを生成します。生成処理には TypDoc を使っています。 | https://typedoc.org/net/ |
react-router-ssr |
ReactRouter (ex-Remix)を用いた SSR アプリケーションの実装デモを管理します。 | https://reactrouter.com/ |
routing |
ReactRouter を用いたアプリケーションの実装デモを管理します。 | https://reactrouter.com/ |
statement |
様々な状態管理ライブラリと React を組み合わせたアプリケーションの実装デモを管理します。 | MobX Unstated Next Constate |
| Sub package | 概要 | 備考 |
|---|---|---|
builder |
各サブパッケージをビルドするためのスクリプトを管理します。ビルドには Vite を使います。 | https://vitejs.dev/ |
core |
当リポジトリ横断(共通)で使用する Components, Constants, Hooks, Helpers を管理します。 | |
icon |
SVG ファイルを読み込み、そこから SVG アイコン の dom を返す React コンポーネントを生成します。 | |
try |
React 単体の機能な振る舞いについての実装デモを管理します。 | |
tsconfig |
各サブパッケージが参照する tsconfig.json を管理します。 |
| Module | Ver. |
|---|---|
| Node.js | ./.node-version を参照 |
| pnpm | ./.package.json を参照 |
本リポジトリで利用可能な Node.js のバージョンは ./.node-version ファイルにて管理しているため、開発者にはこのファイルをサポートしている Node.js バージョン管理ツールの利用を推奨します。以下は推奨するバージョン管理ツールの例です。
本リポジトリではパッケージマネージャーに pnpm を使用します。corepack コマンドを実行して pnpm を有効化します。
corepack enable pnpmpnpm installpnpm prepare
# - `@learn-react/icon` パッケージで管理している SVG ファイルから SVG アイコンコンポーネント用のオブジェクトデータを生成します。
# - `@learn-react/builder` パッケージをビルドして、 Apps ワークスペース配下のパッケージをビルドできるようにします。これで @learn-react/core/components/dataDisplay/Icon コンポーネントが使えるようになります。また、 Apps ワークスペース配下の各パッケージをビルドできるようになります。
アプリケーションとしてビルド・起動するパッケージは以下の通り:
@learn-react/catalog@learn-react/esnext@learn-react/routing@learn-react/statement
上記以外は API や共通ライブラリの実装となっており、単独で利用することはありません。
pnpm (catalog|esnext|rr-ssr|routing|statement) start
# e.g. pnpm catalog start上記コマンドで指定のアプリケーションが起動し、web ブラウザも自動で立ち上がります。起動中はファイルの変更を検知して自動的にリビルド、リロードされます。
アプリケーションとしてビルドするパッケージは以下の通り:
@learn-react/catalog@learn-react/doc@learn-react/esnext@learn-react/react-router-ssr@learn-react/routing@learn-react/statement
pnpm (catalog|doc|esnext|rr-ssr|routing|statement) build
# e.g. pnpm catalog buildpnpm lintpnpm format