webpack中的filename 和 chunkFilename 的區(qū)別實(shí)例解析
filename
filename 是一個(gè)很常見的配置,就是對(duì)應(yīng)于 entry 里面的輸入文件,經(jīng)過webpack打包后輸出文件的文件名。比如說經(jīng)過下面的配置,生成出來的文件名為 index.min.js。

chunkFilename
chunkFilename 指未被列在 entry 中,卻又需要被打包出來的 chunk 文件的名稱。一般來說,這個(gè) chunk 文件指的就是要懶加載的代碼。
比如說我們業(yè)務(wù)代碼中寫了一份懶加載 lodash 的代碼:
// 文件:index.js
// 創(chuàng)建一個(gè) button
let btn = document.createElement("button");
btn.innerHTML = "click me";
document.body.appendChild(btn);
// 異步加載代碼
async function getAsyncComponent() {
var element = document.createElement('div');
const { default: _ } = await import('lodash');
element.innerHTML = _.join(['Hello!', 'dynamic', 'imports', 'async'], ' ');
return element;
}
// 點(diǎn)擊 button 時(shí),懶加載 lodash,在網(wǎng)頁上顯示 Hello! dynamic imports async
btn.addEventListener('click', () => {
getAsyncComponent().then(component => {
document.body.appendChild(component);
})
})我們的 webpack 不做任何配置,還是原來的配置代碼:
{
entry: {
index: "../src/index.js"
},
output: {
filename: "[name].min.js", // index.min.js
}
}這時(shí)候的打包結(jié)果如下:

這個(gè) 1.min.js 就是異步加載的 chunk 文件。文檔里這么解釋:
output.chunkFilename 默認(rèn)使用 [id].js 或從 output.filename 中推斷出的值([name] 會(huì)被預(yù)先替換為 [id] 或 [id].)
文檔寫的太抽象,我們不如結(jié)合上面的例子來看:output.filename 的輸出文件名是 [name].min.js,[name] 根據(jù) entry 的配置推斷為 index,所以輸出為 index.min.js;
由于 output.chunkFilename 沒有顯示指定,就會(huì)把 [name] 替換為 chunk 文件的 id 號(hào),這里文件的 id 號(hào)是 1,所以文件名就是 1.min.js。
如果我們顯式配置 chunkFilename,就會(huì)按配置的名字生成文件:
{
entry: {
index: "../src/index.js"
},
output: {
filename: "[name].min.js", // index.min.js
chunkFilename: 'bundle.js', // bundle.js
}
}
總結(jié)
filename 指列在 entry 中,打包后輸出的文件的名稱。
chunkFilename 指未列在 entry 中,卻又需要被打包出來的文件的名稱。
到此這篇關(guān)于webpack中的filename 和 chunkFilename 的區(qū)別的文章就介紹到這了,更多相關(guān)webpack filename 和 chunkFilename 的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
寫入cookie的JavaScript代碼庫 cookieLibrary.js
cookieLibrary.js 寫入cookie的JavaScript代碼庫,需要的朋友可以參考下。2009-10-10
ES6 Map結(jié)構(gòu)的應(yīng)用實(shí)例分析
這篇文章主要介紹了ES6 Map結(jié)構(gòu)的應(yīng)用,結(jié)合實(shí)例形式分析了ES6中map鍵值對(duì)hash結(jié)構(gòu)相關(guān)定義、獲取、輸出、遍歷等相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
JS網(wǎng)頁在線獲取鼠標(biāo)坐標(biāo)值的方法
這篇文章主要介紹了JS網(wǎng)頁在線獲取鼠標(biāo)坐標(biāo)值的方法,涉及javascript操作頁面窗口位置元素的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
javascript Error 對(duì)象 錯(cuò)誤處理
javascript常見error對(duì)象處理,錯(cuò)誤代碼集合2008-05-05
js選取多個(gè)或單個(gè)元素的實(shí)現(xiàn)代碼(用class)
js選取多個(gè)或單個(gè)元素的實(shí)現(xiàn)代碼(用class),需要的朋友可以參考下2012-08-08
JavaScript數(shù)值轉(zhuǎn)換的三種方式總結(jié)
JavaScript數(shù)值轉(zhuǎn)換一般有三種方式,Number(param)函數(shù)、parseInt(param)、parseIFloat(param),下面為大家詳細(xì)介紹,需要的朋友可以參考下2014-07-07
編寫高質(zhì)量JavaScript代碼的基本要點(diǎn)
編寫高質(zhì)量JavaScript代碼的基本要點(diǎn)分享給大家,感興趣的小伙伴們可以參考一下2016-03-03

