11

私は require.ensure を使用して、react-routerパスに分割ポイントを作成しています。ただし、私のビルド ディレクトリapp.jsには、vendor.js. 使用したパスごとに個別の js ファイルを期待していましたrequire.ensure

私はrequire.ensure次のように各パスで使用しました:

<Route path= 'auth' getComponent={(nextState, callback) => {
  require.ensure([], (require) => {
    callback(null, require('containers/Authenticate/AuthenticateContainer.js').default)
  }, 'auth')
}}/>

ビルド用の私の Web パック構成出力は次のようになります。

output: {
  path: PATHS.build,
  filename: '/[name].[chunkhash].js',
  chunkFilename: '/[chunkhash].js'
}

以下は、ルート ファイルwebpack 構成ファイルの要点全体です。

更新: 私は自分が間違っていたことを理解しました。コンテナーの私のプロジェクト構造は次のようになります。

-app
 -containers
   -containerA.
     -containerA.js
   -containerB
     -containerB.js
   -containerC
     -containerC.js
   -index.js

問題: ルート ファイルで必要なコンテナーをまだエクスポートしていました: export containerB from './containerB/containerB'

4

3 に答える 3

1

必要なモジュールの引数配列を取ることを確認します。動的にロードするモジュール名を配列に指定する必要があります。あなたの場合、「containers/Authenticate/AuthenticateContainer.js」を提供して、次のようにします。

require.ensure(['containers/Authenticate/AuthenticateContainer.js'], (require) => {
      callback(null, require('containers/Authenticate/AuthenticateContainer.js').default)
    }, 'auth');
于 2016-09-29T01:41:53.210 に答える