我正在尝试在嵌套路由上的应用程序中实现基于路由的代码拆分。
我想将主路由子路由分解为与主块分开的块。
mainRoutes.js
... (other routes)
{
path: '/dashboard',
component: VDClient,
},
... (other routes)
VDClient.js
const renderVendorDashboard = () => {
import(/* webpackChunkName: "vddesktop" */ './Root/index').then(VDApp => {
return <VDApp />
});
}
export default class VDClient extends Component {
render() {
renderVendorDashboard();
}
}
根/index.js
import vdRoutes from './vdRoutes'; // file similar to mainRoutes.js but contains the child routes for `/dashboard/` eg: `/dashboard/list`, `/dashboard/add` etc.
class VendorDashboard extends Component {
componentWillMount() {
...
}
render() {
...
<div>
<Switch>
{vdRoutes.map(route => routeWithSubRoutes(route, this.props.match.params, this.props.match.url))}
</Switch>
</div>
}
}
构建完成后,我可以看到除 vddesktop 块之外的所有块。我在这里错过了什么吗?
生成的其他块不包含路由或路由代码/dashboard
,这是预期的行为。所有的进口都是有序的,所以我认为这不应该是一个问题。
我也尝试过使用 react-loadable,但不幸的是,这给了我一个全新的 webpack 4 问题。
参考: webpack 4 react loadable 不会根据夹点拆分供应商基础 https://github.com/jamiebuilds/react-loadable/pull/110
请让我知道我是否可以提供更多可能有助于解决此问题的信息。这将是一个巨大的帮助。