@hzab/webpack-config
webpack 相关核心配置
webpack 相关核心配置
使用
const { resolve } = require("path");
const { mergeConfig } = require("@hzab/webpack-config");
module.exports = (env) =>
mergeConfig(
env,
{
entry: "./src/index.tsx",
resolve: {
alias: {
"@packages": resolve(__dirname, "./packages"),
"@": resolve("./example"),
"@assets": resolve("./example/assets"),
"@service": resolve("./example/services"),
},
},
devServer: {
port: 3000,
proxy: {
"/api": "http://localhost:13000",
},
},
},
{
closeMulEnvConf: false,
closeMock: false,
allowBothStyleModule: false,
closeStyleRules: false,
},
);
注意事项
- 源码中 resolve 目录是命令执行的目录(项目根目录)
- closeMulEnvConf: true 时,请直接使用 public/config/config.js 文件,public-config 下的文件将失效
mergeConfig 参数
属性名称 | 属性类型 | 必须 | 默认值 | 描述 |
---|
env | Object | 是 | | webpack 环境变量 |
userConf | Object | 否 | | 用户自定义的 webpack 配置 |
option | Object | 否 | | 其他配置 |
option 参数
| 属性名称 | 属性类型 | 必须 | 默认值 | 描述 |
| -------------------- | -------- | ---- | ------ | --------------------------------------------------------------------------------------------------------------- | --- |
| closeMulEnvConf | boolean | 否 | false | 是否关闭多环境配置,关闭之后请直接使用 public/config/config.js 文件,public-config 下的文件将失效 |
| splitCssFile | boolean | 否 | true | 是否拆分 css 文件到 css 文件夹,css/main.xxx.css。默认开启,传 false 关闭 | |
| closeMock | boolean | 否 | | 关闭 mock 接口功能 |
| mockPort | number | 否 | 3100 | 自定义 mock 接口端口 |
| mockPortAuto | boolean | 否 | | mock 接口端口自增 |
| closeStyleRules | boolean | 否 | | 是否关闭内部样式处理规则,使用自定义规则 |
| allowBothStyleModule | boolean | 否 | | 允许 css module 和非 css module 共存,使用是否携带 module 后缀进行区别,如:x.module.(less|css) x.(less| css) |
| componentsMode | boolean/Object | 否 | | 是否使用组件模式,可配置对应的 entry 地址 localEntry、prodEntry | |
- 注意,组件模式中 output 需要自行配置类库名称 output: { library: "list-render", } // 类库名称
代理配置
const { resolve } = require("path");
const { mergeConfig } = require("@hzab/webpack-config");
module.exports = (env) =>
mergeConfig(
env,
{
devServer: {
port: 3000,
proxy: {
"/api": "http://localhost:13000",
},
},
},
);
组件模式
- 适用于组件模板 webpack config
- 配置 output: { library: "list_render", }, // 类库名称, 用下划线连接字符
- 选择组件模式,并配置对应的 entry
const { resolve } = require("path");
const { mergeConfig } = require("@hzab/webpack-config");
module.exports = (env) =>
mergeConfig(
env,
{
output: {
library: "webpack_config",
},
resolve: {
alias: {
"@hzab/list-render": resolve(__dirname, "../src"),
},
},
devServer: {
port: 3000,
},
},
{
componentsMode: {
localEntry: "./example/index.tsx",
prodEntry: "./src/index.js",
},
closeMulEnvConf: true,
},
);
组件开发
文件目录
- example 本地开发测试代码
- src 组件源码
- lib 组件压缩后的代码(暂无!!)
发布