javascript - 拆分块需要将所有文件加载到索引文件中
问题描述
我一直在使用本文中关于使用 webpack 进行块拆分的一些代码。https://medium.com/hackernoon/the-100-correct-way-to-split-your-chunks-with-webpack-f8a9df5b7758
我有一个非常简单的 React 模块,我正在测试 Rollup 和 Webpack 捆绑。
import React from 'react';
import { render } from 'react-dom';
render(<div>hello world</div>, document.getElementById('root'));
console.log('hello');
我希望以此为基础并添加额外的模块来测试这两个捆绑器。
通过optimization
下面 Webpack 中的设置,我可以将我的包拆分为多个块。
optimization: {
runtimeChunk: 'single',
splitChunks: {
chunks: 'all',
maxInitialRequests: Infinity,
minSize: 0,
cacheGroups: {
vendor: {
test: /[\\/]node_modules[\\/]/,
name(module) {
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)![1];
return `npm.${packageName.replace('@', '')}`;
},
},
},
},
},
output: {
path: path.join(__dirname, 'dist'),
filename: '[name].bundle.js',
chunkFilename: '[name].chunk.js',
},
这会将我的捆绑包分成几个文件。我期望发生的是有一个bundle
可以包含在我的 index.html 文件中的主文件,它将加载到其余的块中,但这不起作用。我必须像这样加载每个捆绑文件:
<html>
<head>
<title>Example</title>
</head>
<body>
<div id="root"></div>
<script src="main.chunk.js"></script>
<script src="npm.object-assign.chunk.js"></script>
<script src="npm.react-dom.chunk.js"></script>
<script src="npm.react.chunk.js"></script>
<script src="npm.scheduler.chunk.js"></script>
<script src="runtime.bundle.js"></script>
</body>
</html>
根据这些块的文件名,我希望这可以工作,但它不会:
<html>
<head>
<title>Example</title>
</head>
<body>
<div id="root"></div>
<script src="runtime.bundle.js"></script>
</body>
</html>
我已经在实际项目中使用过这个 Webpack 配置,之前没有遇到过这样的问题。我没有正确指定配置的捆绑输出吗?
解决方案
我发现自己也遇到了同样的问题。但我认为您正在检查错误的index.html
文件。
您必须签入构建文件夹,在您的情况下,它是dist/index.html
.
而不是签到public/index.html
。
推荐阅读
- blazor - Blazor:如何动态更改 URL?
- java - FrameLayout 类的子类不会重绘画布屏幕?
- python - 如何使用 BeautifulSoup 去除特殊标签?
- flutter - 在 Flutter 中返回 null 下拉项
- azure - Azure Search switch index on full reuild
- nginx - 在 nginx 中将多个 HTTP 服务器重定向到 HTTPS
- cpu-registers - 如何对 mpu6050 的传感器寄存器进行“突发读取”?
- java - Java 程序跳过询问用户输入
- graph-databases - 图形数据库是否正确识别业务路线?
- javascript - 需要帮助设置此 MongoDB 查询