webpack-plugin生成mock数据
期望功能
1:支持多项目
2:多前缀配置
3:api做兜底
4:切换不同场景数据
5:支持本地合并生成的mock数据
设计原则
数据形式 | 说明 | 优先级 | 禁用方式 |
---|---|---|---|
local | 本地mock文件 | 1 | {disableMock: true} |
yapi | yapi生成的mock数据 | 2 | {disableMock: true} |
server | api的兜底 | 3 | 不传 proxy |
考虑
1.mock数据生成方式
本地文件方式: {
优点: 方便基于生成的mock修改
缺点:1:本地文件需要维护
2:第二次生成时会被覆盖
3:本地合并生成的mock数据时还是需要生成一份express数据
}
express方式:{
优点:不生成本地文件,
缺点:不方便基于生成的mock修改(功能.5可优化)
}
综上所述:使用express方式
2.数据格式
new MockWebpackPlugin({
delay: 800,
mockLocalPath: './mock/index.js',
proxy: {
'/dspManageServer': 'http://alpha-api-ad.szy.com/dspManageServer',
'/Upload/imgFile': 'http://alpha-admin-ztjy.szy.com/Upload/imgFile',
},
yapiConfig: [{
projectId: 633, // 关联的ypai项目id(必传)
token: '1f41d9e0f188ec7aaae786cd4663766f4d11fc8a65fbedf08af234234b3dbe90', // 关联的yapi项目token(必传)
prefix: '/api/member', // 未被 prefixApi | prefixDir命中,则使用该前缀
proxy: 'http://dev-api-ad.szy.net/dspBusinessServer',
},{
projectId: 633, // 关联的ypai项目id(必传)
token: '1f41d9e0f188ec7aaae786cd4663766f4d11fc8a65fbedf08af234234b3dbe90', // 关联的yapi项目token(必传)
prefix: '/api/member', // 未被 prefixApi | prefixDir命中,则使用该前缀
}]
})
参数 | 说明 | 类型 | 默认 |
---|---|---|---|
yapiConfig | yapi配置 | yapiType | |
delay | 请求返回时长 | number | 1000 |
mockLocalPath | 本地已有mock文件入口 | string | |
proxy | 代理转发 | key: string |
yapiType类型
参数 | 说明 | 类型 | 必传 |
---|---|---|---|
projectId | yapi项目id | number | 是 |
token | yapi项目token | string | 是 |
proxy | 兜底api-没有mock数据走proxy | string | 否 |
prefix | api访问前缀 | string | 是 |
3.本地Mock合并
Mock({
// method 完整路径
'POST /api/member/proxy/auth/registerr': {
delay: 1200,
disableMock: true, // 是否禁用mock
mergeYapi: true, // 是否合并yapi生成的mock数据
mock: 'a', // 手动mock数据 使用scenes ‘a’里的数据
mocks: {
'a': {
res: {
},
mergeYapi: false, // 是否合并yapi生成的mock数据
},
'b': {
res: {
}
},
}
},
})