配置(Configuration)
你可能已经注意到,很少有 webpack 配置看起来完全相同。
这是因为 webpack 的配置文件是 JavaScript 文件,文件内导出了一个 webpack 配置的对象。
webpack 会根据该配置定义的属性进行处理。
由于 webpack 遵循 CommonJS 模块规范,因此,你可以在配置中使用:
-
通过 require(…) 引入其他文件
-
通过 require(…) 使用 npm 下载的工具函数
-
使用 JavaScript 控制流表达式,例如 ?: 操作符
-
对 value 使用常量或变量赋值
-
编写并执行函数,生成部分配置
请在合适的场景,使用这些功能。
虽然技术上可行,但还是应避免如下操作:
-
当使用 webpack CLI 工具时,访问 CLI 参数(应编写自己的 CLI 工具替代,或者使用 –env)
-
导出不确定的结果(两次调用 webpack 应产生相同的输出文件)
-
编写超长的配置(应将配置文件拆分成多个)
此文档中得出最重要的结论是,webpack 的配置可以有许多不同的样式和风格。关键在于,为了易于维护和理解这些配置,需要在团队内部保证一致。
基本配置
- webpack.config.js
const path = require('path');
module.exports = {
mode: 'development',
entry: './foo.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'foo.bundle.js',
},
};
多个 target
除了可以将单个配置导出为 object,function 或 Promise 以外,还可以将其导出为多个配置。
查看:导出多个配置
使用其它配置语言
webpack 支持由多种编程和数据语言编写的配置文件。
查看:配置语言
参考资料
https://webpack.docschina.org/concepts/plugins/