理解webpack中output.filename和output.chunkFilename
- filename
filename很好理解,就是对应于entry生成的文件名。比如:
{
entry: {
index: "pages/index.jsx"
},
output: {
filename: "[name].min.js",
chunkFilename: "[name].min.js"
}
}
生成的文件名是index.min.js
- chunkFilename
chunkFilename是指那些未被列入entry中,却又在需要时被打包出来的文件名配置。什么场景下需要呢?在按需加载(异步)模块的时候,这样的文件是没有被列在entry中的,如使用CommonJS的方式异步加载模块:
require.ensure(['modules/tips.jsx'], function (require) {
var a = require('modules/tips.jsx');
// ...
}, 'tips');
异步加载的模块是要以文件形式加载,所以这时的文件名就是以chunkFilename配置为准,生成的文件名就是tips.min.js。
require.ensure()的第三个参数就给这个模块命名,否则chunkFilename: "[name].min.js"中的[name]是一个自动分配、可读性很差的id。
Newest Posts