Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 如何使用CRA+避免重复代码;代码拆分_Webpack_Create React App_Code Splitting_React Loadable - Fatal编程技术网

Webpack 如何使用CRA+避免重复代码;代码拆分

Webpack 如何使用CRA+避免重复代码;代码拆分,webpack,create-react-app,code-splitting,react-loadable,Webpack,Create React App,Code Splitting,React Loadable,例如,假设我们有两个具有公共导入的组件: 。。。 从“./Hello”导入Hello 类扩展组件{} 及 。。。 从“./Hello”导入Hello 类B扩展组件{} 然后将这些组件异步加载到另一个组件中,如下所示: 。。。 从“react Loadable”导入可加载 const AsyncA=可加载({ 加载程序:()=>导入(/*WebPackageChunkName:“A”*/“/A”), 加载:()=>一般加载消息 }); const AsyncB=可加载({ 加载程序:()=>导

例如,假设我们有两个具有公共导入的组件:

。。。
从“./Hello”导入Hello
类扩展组件{}

。。。
从“./Hello”导入Hello
类B扩展组件{}
然后将这些组件异步加载到另一个组件中,如下所示:

。。。
从“react Loadable”导入可加载
const AsyncA=可加载({
加载程序:()=>导入(/*WebPackageChunkName:“A”*/“/A”),
加载:()=>一般加载消息
});
const AsyncB=可加载({
加载程序:()=>导入(/*WebPackageChunkName:“B”*/“/B”),
加载:()=>一般加载消息
});
“A”和“B”块都将包含“Hello”代码,从而向浏览器提供重复的代码

在我的研究中,我已经确定,如果在任何其他非异步加载的组件中导入“Hello”,则不会发生这种情况。在这种情况下,它被捆绑到“main”块中,而不是“A”和“B”块中

虽然这是一种选择,但仍有许多地方有待改进。这演示了如何配置webpack来创建一个“公共”模块,这似乎很理想,因为它不需要任何代码重组来实现所需的效果

但是,CRA禁止使用网页包配置

这里有更好的解决方案吗