自定义 webpack 配置
为了自定义 webpack 配置,需要在项目根目录新建配置文件 dahlia.config.js
,然后在 config 对象中定义一个名为 webpack 的函数。
// dahlia.config.js
module.exports = {
webpack(config, env) {
return {
...config,
// to custom origin config
}
},
}
自定义原理
原理非常简单,在 webpack 函数返回新的 config
即可。因为 dahlia-cli 是基于 create-react-app 开发的,所以原始的配置对象可以看 react-scripts 中的 webpack.config.js
。
下面是个简单的例子,修改 webpack 的 publicPath 配置:
// dahlia.config.js
module.exports = {
webpack(config, env) {
const newConfig = {
...config,
// 自定义 webpack publicPath
publicPath: 'http://0.0.0.0',
}
return newConfig
},
}
使用 override 工具简化配置
上面介绍了如何修改 webpack 配置,但是修改原始的配置对象并不简单,下面介绍如何借助一些工具简化修改配置的过程。
安装覆写 config 的工具库:
yarn add dahlia-webpack-override
安装修改 config 的 operator:
yarn add dahlia-webpack-less
让 dahlia 支持 Less:
// dahlia.config.js
const override = require('dahlia-webpack-override')
const less = require('dahlia-webpack-less')
module.exports = {
webpack(config, env) {
const newConfig = override(config, env).pipe(less())
return newConfig
},
}
使用多个 operator
下面展示了如何同时使用多个 operator,让 ant-design 支持修改主题:
const override = require('dahlia-webpack-override')
const antd = require('dahlia-webpack-antd')
const less = require('dahlia-webpack-less')
module.exports = {
webpack(config, env) {
const newConfig = override(config, env).pipe(
less({
modifyVars: {
'primary-color': 'black',
'link-color': '#1DA57A',
'border-radius-base': '10px',
},
javascriptEnabled: true,
}),
antd({
style: true,
}),
)
return newConfig
},
}
如何编写自己的 operator
operator 是一个函数:
const myOperator = (options?: any) => config => {
const newConfig = {
...config,
// to customize
}
return newConfig
}
export default myOperator
dahlia 提供 config operater
Last updated
Was this helpful?