私はサーバーサイドレンダリングを利用する私の作成反応アプリケーションアプリケーションでコード分割を試みています。create-react-appのサーバー側で反応搭載型を使用できますか?
私は「反応-loadable`をコード分割を行うために利用しています:https://github.com/thejameskyle/react-loadable
私は単にそれが動作するかどうかだけ確認するために、離れて私のアプリの残りの部分から私のHome.js
コンポーネントを分割している今のところ。開発モード(読み取り:SSRではない)では、それはちょっと離れてうまく動作します。
しかし、私はサーバー上で作業することができません。私は彼らのGithubページのガイドに従っていて、必要なウェブパックの変更のために立ち往生しています。 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プラグインがあります。
リアクションロード可能な/ 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
アプリケーションで使用できるのであれば誰でも知りたいですか?
ナイス!問題は、 "dynamic-import-node"がimport()をサーバー上で動作させるが、ブラウザのコード分割を取り消すことである。だから、サーバ専用に有効にする必要があります(.babelrcに追加しないでください)。これはこれを行うのに最適な場所です。この回答は受け入れられるべきです。 – Viacheslav