我尝试使用react-router-dom延迟加载路由,但它不起作用。Webpack 应该在 import() 上自动分割块,但事实并非如此,我总是得到一个 main.hash.js 文件而不是多个块。我有什么遗漏的吗?
应用程序组件:
import * as React from 'react';
import { Route, BrowserRouter, Link } from 'react-router-dom';
const Todos = React.lazy(() => import('routes/Todos'))
class App extends React.Component<{}, {}> {
render() {
return (
<>
<BrowserRouter>
<React.Suspense fallback={<div>loading...</div>}>
<Route exact path="/" render={() => <Link to="/todos">Todos</Link>} />
<Route exact path="/todos" component={Todos} />
</React.Suspense>
</BrowserRouter>
</>
)
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
这是 webpack 配置,以防它可能与某些插件或这边缺少配置有关:
webpack常用配置:
const webpack = require('webpack');
const HtmlWebPackPlugin = require('html-webpack-plugin');
// clean folder (dist in …Run Code Online (Sandbox Code Playgroud)