我正在使用React.lazy尝试将一些代码从我的主应用程序中拆分出来,但它没有按照我期望的方式工作,我很难弄清楚如何调试。
我的代码大致如下:
// index.js
import React from 'react';
import { LibraryUtils } from './library/utils';
const Component = React.lazy(() => import('./component'));
...
// component.js
import React from 'react';
import LibraryComponent from './library/component';
...
我想要的是:
我得到的是:
因此,我的初始页面加载需要加载所有的JS,从而导致性能较差。
我如何强制webpack将library拆分成多个块,以便我可以利用异步块?更好的是,我如何调试这样的问题?
我的配置大致如下:
splitChunks: {
chunks: 'all',
cacheGroups: {
library: {
test: /[\\/]library[\\/]/,
},
},
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
问题是意外包含了
babel-plugin-dynamic-import-node,它将动态导入(用于异步加载)转换为节点环境中的常规require,从而阻止生成任何异步块。解决方案是删除它(或仅在运行单元测试时包含它)。