Skip to content

SSR実装の改善: shadow-cljsへの移行とワークアラウンドの削除#239

Open
boxp wants to merge 26 commits intomasterfrom
improve-ssr-implementation
Open

SSR実装の改善: shadow-cljsへの移行とワークアラウンドの削除#239
boxp wants to merge 26 commits intomasterfrom
improve-ssr-implementation

Conversation

@boxp
Copy link
Owner

@boxp boxp commented Mar 23, 2025

SSR実装の改善

このPRでは、VR-Matchプロジェクトのフロントエンド部分、特にサーバーサイドレンダリング(SSR)に関する問題を解決するための実装を行いました。

主な変更点

  1. shadow-cljsへの移行

    • shadow-cljs.ednファイルを作成し、既存のproject.cljの設定を移行
    • npmパッケージを直接利用できるように設定
  2. CLJSJSパッケージ用シムの実装

    • React, React DOM, Material-UI, Firebaseのシムを作成
    • 既存コードとの互換性を保ちながら、npmパッケージを直接利用
  3. クライアントコードの更新

    • Material-UIラッパーコンポーネントを最新の方法で実装
    • クライアントエントリーポイントを標準的な実装に更新
  4. SSRサーバーコードの更新

    • ServerStyleSheetsを使用した標準的なSSR実装に変更
    • レンダリングロジックを簡素化
  5. プリアンブルファイルの簡素化

    • 不要なコードを削除し、最小限の設定のみを残す
  6. Dockerfileの更新

    • 最新のNode.jsイメージを使用
    • ビルドプロセスを簡素化
    • ファイル書き換えのハックを削除

期待される効果

  • JavaScriptパッケージの二重管理が解消される
  • ハックとワークアラウンドが取り除かれる
  • 標準的なSSR実装パターンに移行できる
  • ビルドプロセスが簡素化される
  • メンテナンス性が向上する
  • 将来のアップデートが容易になる

検証方法

  1. フロントエンドディレクトリで npm install を実行
  2. npm run build:dev でビルド
  3. npm start でサーバーを起動
  4. ブラウザでアクセスして動作確認

@boxp boxp marked this pull request as ready for review March 23, 2025 04:55
@boxp
Copy link
Owner Author

boxp commented Mar 23, 2025

依存関係の問題を修正しました

npm ci 実行時に発生していた問題を解決するために、以下の変更を行いました:

  1. package.json の依存関係を更新

    • 互換性のあるバージョンに変更
    • firebaseoptionalDependencies に移動
    • npm-run-all2npm-run-all に変更
  2. インストール方法の変更

    • npm install --no-optional を使用して、問題のある firebase パッケージをスキップ

これにより、ビルドが正常に実行できるようになります。

@boxp
Copy link
Owner Author

boxp commented Mar 23, 2025

依存関係の問題を修正しました

npm ci 実行時に発生していた問題を解決するために、以下の変更を行いました:

  1. package.json の依存関係を更新

    • 互換性のあるバージョンに変更
    • firebase パッケージを完全に削除(シムを使用して対応)
    • npm-run-all2npm-run-all に変更
    • バージョン番号を安定版に調整
  2. インストール手順

    • package-lock.json を削除
    • npm install または npm ci を実行

これにより、ビルドが正常に実行できるようになります。

@boxp
Copy link
Owner Author

boxp commented Mar 23, 2025

masterの変更を取り込み、依存関係の問題を再度修正しました

npm ci 実行時に発生していた問題を解決するために、以下の変更を行いました:

  1. masterブランチの最新の変更を取り込み

    • firebaseのバージョンを5.11.1に更新
  2. package.json の依存関係を更新

    • 互換性のあるバージョンに変更
    • firebaseoptionalDependencies に移動
    • npm-run-all2npm-run-all に変更
    • バージョン番号を安定版に調整
  3. インストール手順

    • package-lock.json を削除
    • npm install --no-optional または npm ci を実行

これにより、ビルドが正常に実行できるようになります。

@boxp boxp force-pushed the improve-ssr-implementation branch from 9037e08 to d0cc444 Compare March 23, 2025 14:06
boxp and others added 24 commits March 23, 2025 23:09
…は、`material-ui`の一括インポートを個別のコンポーネントインポートに変更し、関連するファイルを更新しました。
…js/compiled`を削除。`build:dev`と`watch`コマンドのターゲットを`server worker`から`server`に変更。
…tyles`に変更し、関連するファイルを更新。"

This reverts commit afed189.
…正し、`ServerStyleSheets`を正しく参照するように変更。関連するドキュメントを更新。
…es/public`に統一し、Dockerfileやビルド設定を更新。Workboxの設定も修正し、関連するドキュメントを更新。
…プロパティの値を更新し、CSS標準に合わせたレイアウトプロパティの変更を反映。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants