@lissome/mock
v1.0.2
Published
A mock server for front-end development
Readme
Lissome Mock
前端本地mock工具
安装与更新
# 安装
pnpm add @lissome/mock -D在项目的package.json的对应的npm脚本(npm script):
{
"name": "mock-demo",
"scripts": {
"server": "mock" // 脚本可修改,可增加自定义参数,例如:mock -p 9090 -d ./mock --sleep 200
},
}启动mock服务
运行上面添加的npm脚本,启动mock服务
pnpm server参数说明
参数 | 默认值 | 说明 -----------|:--------:|---------------------------------------: -p, --port | 9090 | 启动端口号 -d, --dir | ./mock | mock数据路径,可以是相对路径也可以是绝对路径 --sleep | 0 | 是否延迟一段时间再返回数据,单位毫秒
mock数据目录说明
约定目录下的index.js文件为配置文件,不能在该文件里写mock数据
mock数据只能是json格式,后缀名没有要求,统一采用readFile后JSON.parse来解析数据
数据目录中支持多个文件,也支持文件夹,会一次递归遍历各个文件夹中的所有文件,将所有的mock数据统一在一个routerMap里,因此当存在相同的路由时会报错
mock数据格式说明
mock数据格式如下,具体可见examples文件夹
{
"api/lego.Web/GetStandardPricings": {
"code": 0,
"data": {
"items|20": [
{
"description": "111",
"expected_publish_time": 57600,
"id": 4,
"model_id": 0,
"model_id_name": "对客定价模型0",
"progress": 3,
"progress_name": "审批通过",
"progress_update_time": 1554197687,
"user_name": "wwwww",
"uuid": "DK201904021709405180"
}
],
"pagination": {
"current_page": 1,
"page_count": 1,
"page_size": 20,
"total": 8
}
}
},
"api/lego.Web/ExportStandardPricingData": {
"code": 0,
"data": {
"file_name": "DK_CW201904259672.xlsx",
"file_url": "http://finance.lego.web.s3.dns.guazi.com/DK_CW201904259672.xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=RLZPZYN9BEGZZMAWABPY%2F20190425%2Fus-east-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20190425T095238Z\u0026X-Amz-Expires=300\u0026X-Amz-SignedHeaders=host\u0026X-Amz-Signature=717db3d647038aff8854c91fab0c933002a5b117ca9728f422995d330979d0f5"
}
}
}mock数据配置说明
可同时在根目录和子目录下配置,最终配置为子目录合并根目录,prefix除外
module.exports = {
prefix: '/sub', //接口前缀,子目录支持与根目录组合,例如根目录 /api, 子目录'./lego.Web', data.json的key为GetStandardPricings,最终路由为'/api/lego.Web/GetStandardPricings',子目录为绝对路径时(例如/api2/lego.Web),以子目录为准
getData: data => ({ //返回data时,对data进行嵌套处理的函数,可以省去每个接口都需要写相似结构的麻烦
code: 0,
message: 'ok',
data
}),
filter: /data.js/ //只读取目录下复合过滤正则的文件
}