为什么 webpack 代码分割对我不起作用?

2024-02-12

我正在使用 require.ensure 创建分割点反应路由器路径。但是,我的构建目录仍然只有app.js除了vendor.js。我期望我使用的每个路径都有一个单独的 js 文件require.ensure.

I used require.ensure在每条路径上都是这样的:

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

我的构建的 webpack 配置输出如下所示:

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

这是我的要点路线文件 https://gist.github.com/jasan-s/8c17d5bd7bdf63de1c82f21221827a08 and my webpack 配置文件 https://gist.github.com/jasan-s/1514be3b792cf75a5724292b1fa98951完整地。

UPDATE:我知道我做错了什么。我的容器项目结构如下:

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

问题:我仍在导出路由文件中所需的容器,如下所示:从'./containerB/containerB'导出containerB 删除index.js中的导出并直接从containerB.js中获取就可以了。


Ensure 接受您想要的模块的参数数组。您需要向数组提供您希望动态加载的模块名称。在您的情况下,提供“containers/Authenticate/AuthenticateContainer.js”以确保如下所示:

require.ensure(['containers/Authenticate/AuthenticateContainer.js'], (require) => {
      callback(null, require('containers/Authenticate/AuthenticateContainer.js').default)
    }, 'auth');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 webpack 代码分割对我不起作用? 的相关文章

随机推荐