ビルドスクリプトのインポートパス修正と依存バージョン更新
本 PR では、packages/webawesome/scripts/build.js の SSR 用モジュールのインポート方法を相対パスから getDistDir() と path.join を用いた動的パスへ変更し、package-lock.json で @wc-toolkit/jsx-types のバージョンを ^1.3.0 から ^1.6.0 に更新しています。
背景
Webawesome のビルドは packages/webawesome/scripts/build.js が中心となります。このスクリプトはビルドステップを順次実行し、最終的に生成物を dist ディレクトリに出力します。ビルド後、一部の処理で SSR 用の render-string.js をインポートしています。
現在、インポートは ../dist/ssr/render-string.js というハードコードされた相対パスで記述されています。相対パスはビルドディレクトリの位置が変わると解決できなくなる可能性があります。package-lock.json では @wc-toolkit/jsx-types のバージョンが ^1.3.0 から ^1.6.0 に変更されています。
この状態が PR の対象となっており、インポートパスと依存バージョンの修正が行われました。変更はビルドスクリプトの対象行とロックファイルの該当エントリに限定されています。他のロジックへの影響はコード上で確認できません。
技術的な変更
本 PR の技術的な変更は、インポートパスの生成ロジックの置き換えと依存パッケージのバージョン更新の二点です。インポートパスは文字列テンプレートから path.join と getDistDir() を組み合わせた形へ変更されました。依存パッケージは @wc-toolkit/jsx-types のバージョンが ^1.3.0 から ^1.6.0 に上げられています。これらの変更はそれぞれ単一の差分行で表現されています。
変更前:
-const mod = await import(`../dist/ssr/render-string.js?cachebust=${new Date().getTime()}`);
変更後:
+const mod = await import(path.join(getDistDir(), `ssr/render-string.js?cachebust=${new Date().getTime()}`));
変更前のコードでは await import(../dist/ssr/render-string.js?...) が使用されていました。変更後は path.join(getDistDir(), ...) に置き換えられ、import の引数が動的に生成されます。この差分は build.js の 118 行目付近に位置しています。
インポートパスの生成方法が関数呼び出しベースになることで、ビルド出力ディレクトリが変わっても同一コードで参照できます。バージョン更新はロックファイル上のエントリを置換するだけで、他のファイルへの変更はありません。したがって、既存のビルドロジックに対する侵入度は最小限に抑えられています。
設計判断
インポートパスの修正は、相対パス依存を排除し、ビルド出力ディレクトリ取得関数 getDistDir() を利用する設計選択です。この選択はディレクトリ構成が変化した場合でもコードを修正せずに済むことを意図しています。依存バージョンの更新は ^ 範囲指定により後方互換性を保つ方針で行われています。
path.join の使用は Node.js 標準モジュールであり、OS 間のパス区切りを自動調整します。getDistDir() は既存のユーティリティ関数で、ビルド成果物の基底ディレクトリを返すため、ハードコードされた ../dist を置換する意図が明示されています。バージョン指定を ^1.6.0 にすることで、同メジャーバージョン内の将来リリースを受け入れる設計となっています。
結果として、ビルドスクリプトはパス解決ロジックの抽象化と依存管理の柔軟化を同時に実現しています。これらの変更はコードベースの保守性向上を意図した設計判断と評価できます。その他の機能やフローには直接的な影響はありません。
まとめ
本 PR はビルドプロセスのモジュール参照方法と依存パッケージのバージョンを修正し、コード上のハードコーディングを削減しました。インポートパスは getDistDir() と path.join に置き換えられ、ビルド出力ディレクトリが変化しても参照が安定します。依存パッケージ @wc-toolkit/jsx-types は ^1.6.0 に更新され、同メジャーバージョン内のアップデートを受け入れます。これにより、ビルドスクリプトの保守性が向上し、将来的なディレクトリ構成変更への耐性が高まります。