基于 easywebpack-react
自定义 Webpack 构建
Webpack 原始配置编写
// webpack.config.js
const easywebpack = require('easywebpack-react');
const webpack = easywebpack.webpack;
const merge = easywebpack.merge;
const env = process.env.BUILD_ENV;
const baseWebpackConfig = easywebpack.getWebpackConfig({
env, // 根据环境变量生成对应配置,可以在 npm script 里面配置,支持dev, test, prod 模式
target : 'web', // target: web 表示只获取前端构建 Webpack 配置
entry:{
app: 'src/index.js'
}
});
// 拿到基础配置, 可以进行二次加工
const webpackConfig = merge(baseWebpackConfig, {
// 自定义配置
})
module.exports = webpackConfig;
package.json
{
"script" :{
"build:dev": "cross-env BUILD_ENV=dev NODE_ENV=development webpack --config webpack.config.js",
"build:test": "cross-env BUILD_ENV=test NODE_ENV=development webpack --config webpack.config.js",
"build": "cross-env BUILD_ENV=prod NODE_ENV=production webpack --config webpack.config.js"
}
}
功能说明
这样一份简单的配置具备以下能力
- 支持方式启动 Webpack dev server
- 支持 dev, test, prod 三种环境构建
- 支持es6, babel, postcss, eslint 能力
- 支持开发期热更新能力,同时Webpack 构建文件不落地磁盘
- 支持 图片压缩,js压缩, css压缩, extract能力