一、entry
用來(lái)定義入口文件,有三種格式:
1、字符串
entry: './src/app.js'
這種格式相當(dāng)于
entry: {
main: './src/app.js'
}
如果不指定打包的文件名,默認(rèn)會(huì)打包成main.js
2、數(shù)組
entry: ['./src/app.js', './src/index.js']
這種情況會(huì)將兩個(gè)文件都打包到main.js,這種方式適合于想要多個(gè)依賴文件一起注入,并且將它們的依賴導(dǎo)向到一個(gè)“chunk”
3、對(duì)象
entry: {
app: './src/app.js',
main: './src/index.js'
}
這種情況會(huì)打包成兩個(gè)文件,文件名對(duì)應(yīng)key值
總結(jié):
其實(shí)這三種寫(xiě)法原理都是一樣的,前兩種寫(xiě)法是第三種的簡(jiǎn)寫(xiě),也就是說(shuō),如果不提供key值,就會(huì)默認(rèn)對(duì)應(yīng)到“main",打包后的文件名也會(huì)對(duì)應(yīng)key值。
二、entry結(jié)合webpack插件CommonsChunkPlugin的用法:
1、單入口,可用vendors(名字可以隨意?。┲付ㄒ恍┕玫膸?kù),打包到vendors.js
entry: {
app: './src/app.js',
vendors: ['react', 'react-dom']
}
new webpack.optimize.CommonsChunkPlugin({
name: 'vendors' //名字要對(duì)應(yīng)entry
});
2、多入口,提取入口文件的公共代碼,打包到vendors.js
entry: {
app: './src/app.js',
index: './src/index.js'
}
new webpack.optimize.CommonsChunkPlugin({
name: 'vendors',//指定打包的文件名
chunk: ['app'] //指定要提取公共代碼的入口文件,沒(méi)有這一項(xiàng)配置可默認(rèn)提取所有的入口文件
minChunks:2 //指定要打包的文件數(shù),具體用法后面補(bǔ)充
});