webpack的五个基本概念
一、entry
该值让webpack知道应使用那个模块开始构建其内部的依赖关系图。
webpack将会根据entry依赖于哪些模块和库
1.1、根据入口的多少来划分分为单入口和多入口
1.1.1、单入口书写方式
module.exports={
entry:'./src/index.js',
}
module.exports={
entry:['./src/index.js'],
}
module.exports={
entry:{ main:'./src/index.js' },
}
module.exports={
entry:{ main:['./src/index.js'], },
}
module.exports = {
entry: () => './src/index.js'
};
1.1.2、多入口书写方式
module.exports={
entry:['./src/index.js','./src/about.js'],
}
module.exports={
entry:{
index:'./src/index.js',
about:'./scr/about.js'
},
}
module.exports={
entry:{
main:['./src/index.js','./scr/about.js'],
},
}
module.exports = {
entry: () => './src/index.js'
};
二、output
该值让webpack如何以及在那个位置输出打包之后的文件
主要根据entry是单个入口还是多个入口来进行输出
2.1、单个入口(单个出口)
const path = require('path');
module.exports={
entry:'./src/index.js',
output:{
filename:"[name].js",
path: path.resolve(__dirname, '../dist'),
}
}
module.exports={
entry:['./src/index.js'],
output:{
filename:"[name].js",
path: path.resolve(__dirname, '../dist'),
}
}
module.exports={
entry:{
index:['./src/index.js']
},
output:{
filename:"[name].js",
path: path.resolve(__dirname, '../dist'),
}
}
2.2、多页面应用打包(多个入口对应多个出口)
const path = require('path');
module.exports={
entry:{
index:'./src/index.js',
about:'./src/about.js'
},
output:{
filename:"[name].js",
path: path.resolve(__dirname, '../dist'),
}
}
demo
const path = require('path');
module.exports={
entry:{
main:['./src/index.js','./src/about.js'],
},
output:{
filename:"[name].js",
path: path.resolve(__dirname, '../dist'),
}
}
三、loaders
webpack 只能理解 JavaScript 和 JSON 文件。
loader 让 webpack 能够去处理其他类型的文件,并将它们转换为有效模块,
以供应用程序使用,以及被添加到依赖图中。
四、plugins
plugin是一个扩展器,它丰富了webpack本身,plugins能够被用于执行更广泛的任务比如打包优化、
文件管理、环境注入等…
五、mode
提供 mode 配置选项,告知 webpack 使用相应模式的内置优化