# Webpack
# 版本
- webpack5,无特别说明,默认都是 webpack5
# 配置文件
# 默认值
- 默认配置文件是 webpack.config.js
- 默认项目入口文件 src/index.js , 默认输出到 dist/main.js,在生产环境开启压缩和优化
# 手动指定配置文件
webpack --config dev.config.js
# 详细的配置属性介绍
# mode
- 作用:用来设置
process.env.NODE_ENV
的值 - 默认值:
production
- 用法
// package.json
webpack --mode=development
// webpack.config.js
module.exports = (env, argv) => {
console.log(argv.mode);
}
# context
- 作用:设置 entry 和 loader 的相对路径
module.exports = {
context: path.resolve(__dirname, 'src')
}
# entry
- 作用:设置打包过程一个或多个起点。
- 单页应用(SPA):一个入口起点;多页应用(MPA):多个入口起点。
- 用法
module.exports = {
// 方式一: 字符串
entry: './index.js', // 使用相对路径,基于 context 的值
// 方式二: 对象
entry: {
index: {
import: './index.js',
// index 和 entry 公用一个 react-vendors,而不会各自包含
// dependOn 可以是字符串 或 数组
dependOn: 'react-vendors'
},
'react-vendors': ['react', 'react-dom']
entry: {
import: './entry.js',
// 指定输出文件的命名
filename: 'pages/[name][ext]',
dependOn: 'react-vendors'
}
},
// 方式三: 数组
entry: [
'./index',
'./entry'
]
}
传入字符串和数组, chunk 命名为 main;如果是对象,则属性的 key 就是 chunk 的名字。
# 完整配置
module.exports = {
mode: 'production',
}