gpt4 book ai didi

webpack - 为什么 webpack 4 会生成名为 0.js、1.js 2.js 的文件?

转载 作者:行者123 更新时间:2023-12-04 11:16:21 25 4
gpt4 key购买 nike

在我尝试从 webpack 3 切换到 4 时,我使用了一个简化的配置,如下所示。
构建成功但生成了一些只有数字和文件名的块,我似乎无法理解为什么?

0.css   12.5 KiB                             0  [emitted]
0.js 312 KiB 0 [emitted]
1.js 90.3 KiB 1 [emitted]
2.js 109 KiB 2 [emitted]
3.js 647 KiB 3 [emitted]
4.js 1.14 MiB 4 [emitted]
5.css 33.5 KiB 5 [emitted]
5.js 1.56 MiB 5 [emitted]
6.css 602 bytes 6 [emitted]
6.js 92.8 KiB 6 [emitted]

配置:
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = function (env, options) {
const PRODUCTION = options.mode === 'production';

return {
entry: {
common: ['libA', 'libB', './common/A.js', './common/A.js', /* ... */],
pageA: ['./src/pageA/file1.js', './src/pageA/file2.js', /* ... */],
pageB: ['./src/pageB/file1.js', './src/pageB/file2.js', /* ... */],
/* ... */
},
output: {
path: path.resolve('./dist'),
filename: `[name]${PRODUCTION ? '.min' : ''}.js`,
chunkFilename: `[name]${PRODUCTION ? '.min' : ''}.js`,
libraryTarget: 'var'
},
module: {
rules: [
{
test: /\.js$/i,
include: /src/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.css$/i,
include: /src/,
exclude: /node_modules/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
sourceMap: false,
importLoaders: 1
}
}
]
},
/* ... */
]
},
plugins: [
new MiniCssExtractPlugin({
filename: `[name].${PRODUCTION ? 'min.css' : 'css'}`,
chunkFilename: `[name].${PRODUCTION ? 'min.css' : 'css'}`
})
],
optimization: {
splitChunks: {
chunks: 'initial',
name: false,
cacheGroups: {
common: {
test: true,
name: 'common',
chunks: 'initial',
minSize: 0,
minChunks: 10,
reuseExistingChunk: true,
enforce: true
}
}
}
}
};
};

最佳答案

每个x.js文件是通过代码中的动态导入创建的。

Webpack 支持 import() & require.ensure() 句法。

它们都支持块命名:

  • import() - 有评论
  • import(/* webpackChunkName: "my-chunk-name" */ 'my-comp');
  • require.ensure() - 指定第四个参数
  • require.ensure(['b'], function(require) {
    var c = require('c');
    }, console.error, 'chunkName');
    -----------------------^

    关于webpack - 为什么 webpack 4 会生成名为 0.js、1.js 2.js 的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49846386/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com