af-build-dev
基于af-webpack的前端构建编译工具,可零配置开箱使用
usage
安装
$ npm i @epig/af-build-dev --save-dev
$ npm i @epig/af-build-dev -g
cli
$ epig dev
$ epig build
配置项
环境变量
只列部分,详细参考af-webpack源码;
NAME | NOTES | DEFAULT_VALUE |
---|
PROT | 服务器端口 | 8000 |
ANALYZE | webpack-bundle-analyzer 插件开关 | undefined |
SPEED_MEASURE | speed-measure-webpack-plugin 插件开关 | undefined |
COMPORESS | 压缩混淆js文件选项 | undefined |
POLYFILL | babel polyfill 选项 | undefined |
.webpackrc.js 配置项
参考af-webpack中的webpack配置项,推荐在.epigrc.js
文件中配置
由于af-build-dev内建chainConfig支持,请不要配置chainConfig,其他配置项和合并到内置配置项。
.epigrc.js 配置项
在此配置文件中也可以配置 .webpackrc.js 的同名配置项,会合并使用(优先级:.epigrc.js>.webpackrc.js), 但是配置在此的配置项不会进行检查。
plugins
通过数组的形式进行配置,第一项是插件名字或自定义插件,第二项(可选)为传进插件的参数,类似babel的配置方式
plugins: [
['epig-plugin-admin', {noAutoRoute: true}],
]
chainWebpack
支持链式配置webpack配置,参考webpack-chain
chainWebpack(chainConfig, { webpack }) {
chainConfig.resolve.alias.set('a', 'path/to/a');
}
targets
babel语法兼容配置,参考@babel/preset-env
targets: {
ie: 11,
}
gzip
构建时是否开启gzip压缩,生成的gz文件需配合express-static-gzip
使用。参考example
gzip:true
scripts
将script脚本注入到html模板中,支持head
以及body
注入位置,支持src
或者content
模式;
export interface ScriptEnhanceOption {
area?: 'head' | 'body';
src?: string;
content?: string;
}
scripts: [{
src: 'https://as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js',
}, {
content: 'window.test="test";',
}, {
area: 'body',
content: 'window.end="end";',
}]