最近在學(xué)習(xí)webpack的相關(guān)知識(shí)势告,無(wú)奈學(xué)了就忘芽唇,遂在此做一個(gè)簡(jiǎn)單的記錄橄妆,以便來(lái)日遺忘之時(shí)翎迁,可以回顧内斯。
一.entry
webpack的entry有兩種寫法(好像還有一種是函數(shù)?這里就寫兩種把)蕴潦。第一種是字符串,第二種是數(shù)組俘闯。
直接看例子:
let base1='./app/index2.js'
let base2={
index: "./app/index.js",
index1: "./app/index1.js"
}
module.exports={
entry: base2, //base1
output: {
path: __dirname+'/dist', //path為輸出路徑潭苞,__dirname為根目錄
filename: "_[name].js"
}
}
當(dāng)以數(shù)組向entry傳參數(shù)的時(shí)候,output得到的文件名字為_index.js和_index1.js真朗,傳入數(shù)組的情況通常用在有多個(gè)頁(yè)面的情況下每個(gè)頁(yè)面都要有一個(gè)壓縮的js此疹,此時(shí)就需要用到數(shù)組傳遞參數(shù);
而當(dāng)以字符串向entry傳參數(shù)的時(shí)候遮婶,output得到的文件名字為_main.js(在不指定filename的情況下蝗碎,此為默認(rèn)值)。
二.output
output用來(lái)配置壓縮后的文件名字和文件目錄旗扑,直接看例子吧:
let base={
index: './app/index.js',
index1: './app/index1.js'
}
module.exports={
entry: base,
output: {
path: __dirname+'./dist',
//hashDigestLength: 4,
filename: "[chunkhash:4]_[name].js"
},
}
- [chunkhash] 和 [hash]
[chunkhash:4]
表示輸出一個(gè)由字母和數(shù)字組成的4位的字符串蹦骑,所以最后得到的結(jié)果可能是abc1_index.js、def2_.index1.js
hashDigestLength: 4
是另一種寫法
若filename指定[hash]_[name]
則會(huì)輸出abc1_index.js和abc1_index1.js這兩個(gè)文件的hash值是相同的
這是為什么呢臀防?hash時(shí)webpack在整個(gè)編譯過(guò)程中產(chǎn)生的一個(gè)值眠菇,而chunkhash指的是webpack在對(duì)每一個(gè)文件(這里指index1.js和index.js)編譯過(guò)程,這兩個(gè)的chunkhash是不同的