Light 工程在编译时使用一套默认的 Webpack 配置,用户也可以通过 build.js 文件自定义 Webpack 配置。
只需将 build.js 文件放在项目根目录下,书写好自定义配置后,无需其他操作,在编译时会自动加载配置。
以下是一个自定义配置文件实例(恒生内网),外网用户请下载示例合集:
const path = require('path') const fs = require('fs') const isRegExp = str => (Object.prototype.toString.call(str) === '[object RegExp]'); const RemoveStrictPlugin = require('remove-strict-webpack-plugin');
module.exports = { build(config, merge, webpack) { const localConfig = { resolve: { alias: { 'projectname': path.resolve(__dirname, '') } }, plugins: [ new webpack.DefinePlugin({ 'process.env': fs.existsSync(path.resolve(__dirname, `./config/config_${process.env.NODE_ENV}.js`)) ? require(`./config/config_${process.env.NODE_ENV}`) : require('./config/config_prod') }), new RemoveStrictPlugin() ] }; const rules = config.module.rules; const babelLoader = rules.find(a => isRegExp(a.test) && a.test.test('.js')); if (babelLoader) { babelLoader.options.plugins = [ require(path.resolve(__dirname, 'lib/node_modules/babel-plugin-transform-decorators-legacy')).default, require(path.resolve(__dirname, 'lib/node_modules/babel-plugin-transform-runtime')), ...babelLoader.options.plugins, ]; babelLoader.exclude = /(node_modules|bower_components)/; } return merge(config, localConfig); } }
|