A core library for sakamotoapp
npm install @sakamotoapp/core- src直下に「汎用役割」または「領域ごと」のディレクトリを作成する
- ディレクトリ名は 必ず複数形 に統一する(例: components, hooks, contexts, utils, libs)
- すべてのエクスポートはsrc/index.tsから一元化する
- 必ずpnpm check:exportsでexport漏れ・default export禁止をチェックする
- 必ずpnpm fix-aliasesで@エイリアスを相対パスに自動置換してからビルドする
- 必要に応じて領域(ドメイン)ごとにサブディレクトリ(three, realtimeなど)を設ける
- 未来の拡張に強い構造を維持する
---
``plaintext
src/
components/
ui/
button.tsx
card.tsx
slider.tsx
layout/
feedback/
hooks/
useDeepCompareState/
useDeepCompareState.tsx
useDropFile/
useDropFile.tsx
useRealtimeParam/
RealtimeParamContext.tsx
useRealtimeParam.tsx
useRealtimeParamWithContext.tsx
utils/
numberUtils/
stringUtils/
contexts/
realtimeSAB/
RealtimeSABContext.tsx
RealtimeSABContext.worker.ts
realtimeParam/
RealtimeParamContext.tsx
libs/
ffmpegUtils.ts
mediaRecorder.ts
three/
components/
ui/
ThreeCanvas.tsx
objects/
Cube.tsx
helpers/
AxesHelper.tsx
hooks/
useThreeRenderer/
useThreeRenderer.tsx
useCameraControls/
useCameraControls.tsx
utils/
threeHelpers.ts
types/
shared.ts
index.ts
`
---
| フォルダ | 内容 | 備考 |
|:--|:--|:--|
| components/ | 汎用UI部品群 | 必ずサブフォルダ分類(ui/, layout/, feedback/など) |
| hooks/ | 汎用React hooks群 | useXxxごとにサブフォルダを作る |
| utils/ | 小さなユーティリティ関数群 | テーマ別にまとめる(例: numberUtils/) |
| contexts/ | Context APIを使った状態管理ツリー | 1Context 1サブフォルダ推奨 |
| libs/ | 小さなライブラリ的な補助関数群 | 領域横断的な汎用コード |
| [ドメイン]/ | 特定領域(three/, realtime/など) | ドメイン単位でcomponents/hooks/utils分類 |
---
- 新たなテーマが登場したらsrc直下に追加(例: "vision/" "audio/")
- サブフォルダ化は常に "人間が即座に理解できる単位" を意識する
- src直下の全てに複数形適用(例外なし)
- エクスポートは常にindex.ts出口管理(export chain構築)
- スクリプト群(check-exports.mjs, replace-aliases.mjs)は常に最新src構造に追従させる
---
- 全src以下のts/tsxファイルをスキャン
- "exportしているがindex.ts経由で外部exportされていない"ファイルを検出
- "default export"が使われていないかもチェック
- 問題があればエラー終了
- src以下の全.ts/.tsxファイルで、@/xxx 形式のインポートを適切な相対パスに変換../
- 深さに応じた補正を自動適用
- 未来のビルドエラーを未然に防ぐ
---
これに従えば、あなたのプロジェクトは
> "世界トップクラスのモノレポ設計品質"
を常に維持できます!!!!!!!!!!🚀✨✨✨✨✨
---
(最後に: これに新しい領域や例外ルールを加えたい場合は随時追記OK!)
🔥 Let's keep it professional!! 🔥
bash
cd packages/core
`$3
`bash
pnpm ver:patch // バグ修正
or
pnpm ver:minor // 機能追加
or
pnpm ver:major // 大きな変更
`
$3
つまり、versionを上げたら、必ずgitにpushすること
`bash
git add .
git commit -m "version up"
git push
`$3
`bash
pnpm pub
``