Webpack配置
来源:互联网 发布:中文地址模糊匹配算法 编辑:程序博客网 时间:2024/05/26 08:42
你可能已经注意到,很少有 webpack 配置看起来很完全相同。这是因为 webpack 的配置文件,是导出一个对象的 JavaScript 文件。此对象,由 webpack 根据对象定义的属性进行解析。
因为 webpack 配置是标准的 Node.js CommonJS 模块,你可以做到以下事情:
通过 require(…) 导入其他文件
通过 require(…) 使用 npm 的工具函数
使用 JavaScript 控制流表达式,例如 ?: 操作符
对常用值使用常量或变量
编写并执行函数来生成部分配置
请在合适的时机使用这些特性。
虽然技术上可行,但应避免以下做法:
在使用 webpack 命令行接口(CLI)(应该编写自己的命令行接口(CLI),或使用 –env)时,访问命令行接口(CLI)参数
导出不确定的值(调用 webpack 两次应该产生同样的输出文件)
编写很长的配置(应该将配置拆分为多个文件)
最简单的配置
webpack.config.js
var path = require(‘path’);
module.exports = {
entry: ‘./foo.js’,
output: {
path: path.resolve(__dirname, ‘dist’),
filename: ‘foo.bundle.js’
}
};
最终,你会发现需要在开发和生产构建之间,消除 webpack.config.js 的差异。(至少)有两种选项:
作为导出一个配置对象的替代,还有一种可选的导出方式是,从 webpack 配置文件中导出一个函数。该函数在调用时,可传入两个参数:
环境对象(environment)作为第一个参数。有关语法示例,请查看CLI 文档的环境选项。 一个选项 map 对象(argv)作为第二个参数。这个对象描述了传递给 webpack 的选项,并且具有 output-filename 和 optimize-minimize 等 key。
-module.exports = {
+module.exports = function(env, argv) {
+ return {
+ devtool: env.production ? ‘source-maps’ : ‘eval’,
plugins: [
new webpack.optimize.UglifyJsPlugin({
+ compress: argv[‘optimize-minimize’] // 只有传入 -p 或 –optimize-minimize
})
]
+ };
};
导出一个 Promise
webpack 将运行由配置文件导出的函数,并且等待 Promise 返回。便于需要异步地加载所需的配置变量。
module.exports = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
entry: ‘./app.js’,
/* … */
})
}, 5000)
})
}
导出多个配置对象
作为导出一个配置对象/配置函数的替代,你可能需要导出多个配置对象(从 webpack 3.1.0 开始支持导出多个函数)。当运行 webpack 时,所有的配置对象都会构建。例如,导出多个配置对象,对于针对多个构建目标(例如 AMD 和 CommonJS)打包一个 library 非常有用。
module.exports = [{
output: {
filename: ‘./dist-amd.js’,
libraryTarget: ‘amd’
},
entry: ‘./app.js’,
}, {
output: {
filename: ‘./dist-commonjs.js’,
libraryTarget: ‘commonjs’
},
entry: ‘./app.js’,
}]
使用不同语言进行配置(Configuration Languages)
编辑此页
webpack 接受以多种编程和数据语言编写的配置文件。支持的文件扩展名列表,可以在 node-interpret 包中找到。使用 node-interpret,webpack 可以处理许多不同类型的配置文件。
在使用不同的配置语言进行书写配置的时候需要安装相关依赖
- webpack配置
- webpack配置
- webpack 配置
- webpack配置
- webpack配置
- webpack 配置
- webpack配置
- webpack配置
- Webpack配置
- webpack配置
- webpack echarts配置实例
- webpack安装和配置
- webpack 发布配置
- webpack配置浅析
- webpack(二)配置
- django-webpack配置
- gulp+webpack配置
- React+Webpack打包配置
- perf top 反汇编
- Ubuntu16.04 安装英伟达显卡驱动
- 常用过滤器:指定数据格式
- 初学者--Andorid 断点续传
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Webpack配置
- 使用DOClever接口管理平台,使用免费开源版本线下(windows环境)该怎么安装部署?
- Linux命令——route
- 一点关于GridLayout的介绍
- JFianl 实现将数据库的数据导出excel表格
- 正交编码器学习(二)
- 利用HttpUtils实现断点续传下载文件
- jQuery 设计模式
- Web网站打包成APP