11/26

日記

2025/11/26

日記でアウトプットしてけ〜 obsidianとごっちゃになっちゃってるけどいいよ〜〜

three.jsのtrainingのリポジトリがあったんだけど、いちいち例ごとにパスを変えたりして使ってた。
光とかカメラ位置とか、例ごとに違ってごちゃごちゃになっていたからモノレポ構造にしたいと思い、新しいリポジトリでやってみたが。。。

モノレポ構造とは

複数のプロジェクトやパッケージを単一のリポジトリで管理する手法。
対義語はマルチレポ。

つくって思った。別に独立してpackage.jsonがあるわけでもないのに、「モノレポ構造」と言えるのだろうか・・・?
cursorにきいてみた。

モノレポは通常、以下を満たします:

  • 各パッケージ/プロジェクトが独立したpackage.jsonを持つ
  • ワークスペース機能(npm/yarn/pnpm workspaces、Lerna、Nxなど)で管理
  • 各パッケージを独立してビルド・公開可能

結果。現状は厳密な意味でのモノレポではなく、マルチエントリーポイントの単一プロジェクトです。

window.location

なんか新しいリポジトリでルートハンドラーをつくったので、window.locationをかなり使った。結構忘れてるし、知らないこともあった。

  • href: 完全なURL
  • hostname: ホスト名(例: www.example.com
  • pathname: パス(例: /path/to/page)
  • search: クエリ文字列(例: ?name=value)
  • hash: ハッシュ部分(例: #section)
  • assign(): 履歴に残るページ遷移をする
  • replace(): 履歴に残らないページ遷移をする

余談

モノレポ構造としてつくったディレクトリに、元のthree-trainingの中身を移動しても、<がないみたいなエラーが起こっていて、1から作り直して格闘していたが、publicフォルダに/draco/がないだけでした。