af-build-dev
基于af-webpack的前端构建编译工具
usage
安装
$ npm i @epig/af-build-dev --save-dev
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 |
.webpackrc.js 配置项
参考af-webpack中的webpack配置项
由于af-build-dev内建chainConfig支持,请不要配置chainConfig,其他配置项和合并到内置配置项。
内置配置项
const babelTargets = {
chrome: 49,
firefox: 64,
safari: 10,
edge: 13,
ios: 10,
...(targets || {}),
};
const webpackrc = {
publicPath: '/',
ignoreMomentLocale: true,
disableDynamicImport: false,
hash: isDev ? false : true,
...memo,
...rest,
urlLoaderExcludes: [
/\.(html|ejs|txt)$/,
...(memo.urlLoaderExcludes || []),
...(rest.urlLoaderExcludes || []),
],
extraBabelPresets: [
[
require.resolve('babel-preset-umi'),
{
targets: babelTargets,
env: {
useBuiltIns: 'entry',
...(treeShaking ? { modules: false } : {}),
},
},
],
...(memo.extraBabelPresets || []),
...(rest.extraBabelPresets || []),
],
extraBabelPlugins: [
[require.resolve('babel-plugin-import'), { libraryName: 'antd', style: true }],
[require.resolve('babel-plugin-import'), { libraryName: 'antd-mobile', style: true }, 'antd-mobile'],
...(memo.extraBabelPlugins || []),
...(rest.extraBabelPlugins || []),
],
}
.epigrc.js 配置项
在此配置文件中也可以配置 .webpackrc.js 的同名配置项,会合并使用(优先级:.epigrc.js>.webpackrc.js), 但是配置在此的配置项不会进行检查。
数组项支持为插件名字或者自定义方法。
如果插件有参数,则通过数组的形式进行配置,第一项是插件名字,第二项是参数,类似 babel 插件的配置方式。
无参数
plugins: [
['epig-plugin-admin'],
],
有参数
plugins: [
['epig-plugin-admin', {noAutoRoute: true}],
],
chainWebpack
可支持链式配置webpack配置,参考webpack-chain
chainWebpack(config, { webpack }) {
config.resolve.alias.set('a', 'path/to/a');
}
targets
babel语法兼容配置
targets: {
ie: 11,
}