サーバー側のレンダリングを利用する create-react-app アプリケーションでコード分割を試みています。
コード分割を行うために「react-loadable」を利用しています:https://github.com/thejameskyle/react-loadable
今のHome.js
ところ、コンポーネントをアプリの残りの部分から切り離して、それが機能するかどうかを確認するだけです。開発モード (読み取り: SSR ではない) では、チャンクオフされ、正常に動作します。
ただし、サーバー上で動作させることはできません。Github ページのガイドに従っていますが、webpack の変更が必要なため行き詰まっています。アプリケーションではcreate-react-app
、webpack は隠されているためアクセスできません。
サーバーの起動時に受け取るエラーは次のとおりです。
return (0, _importInspector.report)(import('../components/home/Home'), {
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10) ...
ガイドに記載されているようにwebpackが正しく構成されていないためだと確信しています。
ガイドでは、SSR について明確に述べています。
まず、各モジュールがどのバンドルに含まれているかを伝える Webpack が必要です。このために、React Loadable Webpack プラグインがあります。
react-loadable/webpack から ReactLoadablePlugin をインポートし、webpack 構成に含めます。バンドルに関する JSON データを保存する場所のファイル名を渡します。
// webpack.config.js
import { ReactLoadablePlugin } from 'react-loadable/webpack';
export default {
plugins: [
new ReactLoadablePlugin({
filename: './dist/react-loadable.json',
}),
],
};
排出しないと無理だと思います。サーバー側でレンダリングされるアプリケーションreact-loadable
で使用できるかどうかは誰にも分かりますか?create-react-app