{"id":28447694,"url":"https://github.com/nervjs/taro-plugin-mock","last_synced_at":"2025-06-30T13:32:33.846Z","repository":{"id":45058426,"uuid":"251639067","full_name":"NervJS/taro-plugin-mock","owner":"NervJS","description":"Taro 数据 Mock 插件","archived":false,"fork":false,"pushed_at":"2025-06-09T03:56:48.000Z","size":195,"stargazers_count":29,"open_issues_count":4,"forks_count":18,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-06-26T08:45:01.515Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NervJS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-03-31T15:04:34.000Z","updated_at":"2025-06-09T03:44:43.000Z","dependencies_parsed_at":"2024-10-31T18:00:33.560Z","dependency_job_id":"b471bb1d-15ef-4ee7-bc86-a06bf70ae009","html_url":"https://github.com/NervJS/taro-plugin-mock","commit_stats":{"total_commits":29,"total_committers":6,"mean_commits":4.833333333333333,"dds":0.2068965517241379,"last_synced_commit":"c260a434a7755fdc454b3a0db30e0f08eeae5701"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/NervJS/taro-plugin-mock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NervJS%2Ftaro-plugin-mock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NervJS%2Ftaro-plugin-mock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NervJS%2Ftaro-plugin-mock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NervJS%2Ftaro-plugin-mock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NervJS","download_url":"https://codeload.github.com/NervJS/taro-plugin-mock/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NervJS%2Ftaro-plugin-mock/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262783337,"owners_count":23363520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-06T12:06:28.216Z","updated_at":"2025-06-30T13:32:33.738Z","avatar_url":"https://github.com/NervJS.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @tarojs/plugin-mock\n\n\u003e Taro 数据 Mock 插件\n\n## 安装\n\n在 Taro 项目根目录下安装\n\n```bash\n$ npm i @tarojs/plugin-mock --save\n```\n\n## 使用\n\n### 引入插件\n\n请确保 Taro CLI 已升级至 Taro 2/3 的最新版本。\n\n修改项目 `config/index.js` 中的 plugins 配置为如下\n\n```js\nconst config = {\n  ...\n  plugins: [\n    ...其余插件\n\n    '@tarojs/plugin-mock'\n  ]\n  ...\n}\n```\n\n这样在 `taro build` 编译完后就会启动一个数据 mock 服务器。\n\n### 参数\n\nMock 插件可以接受如下参数：\n\n| 参数项 | 类型 | 是否可选 | 用途 |\n| :-----| :---- | :---- | :---- |\n| host | string | 是 | 设置数据 mock 服务地址，默认为 127.0.0.1 |\n| port | number | 是 | 设置数据 mock 服务端口，默认为 9527 |\n| mocks | object | 是 | 设置数据 mock 接口 |\n\n其中 `mocks` 参数是用于设置数据 mock 接口，以 k-v 的方式进行设置，接口的 HTTP 方法通过在 key 中进行指定，例如：\n\n```\n{\n  'GET /api/user/1': {\n    name: luckyadam\n  },\n\n  'POST /api/upload': {\n    file: xxxx\n  }\n}\n```\n\n支持的 HTTP 方法有：`['GET', 'POST', 'HEAD', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH']`\n\n如果项目中的接口过多，也可以不通过插件的 `mocks` 配置来设置接口，可以直接在项目中创建一个 `mock` 目录，在 `mock` 下添加接口配置文件来设置接口，接口配置文件支持使用 ES6 语法以及 TS，例如。\n\n如上配置可以改写成，在项目根目录下创建 `mock` 目录，添加一个 `api.ts` 文件，内容如下：\n\n```typescript\n// mock/api.ts\n\nexport default {\n  'GET /api/user/1': {\n    name: luckyadam\n  },\n\n  'POST /api/upload': {\n    file: xxxx\n  }\n}\n```\n\n同时也支持使用 [`mockjs`](http://mockjs.com/) 来生成 mock 数据\n\n安装 `mockjs`\n\n```bash\n$ npm i mockjs --save\n```\n\n使用如下\n\n```ts\n// /mock/api.ts\nimport mockjs from 'mockjs'\n\nexport default {\n  'GET /api/tags': mockjs.mock({\n    'list|1-10': [{\n      // 属性 id 是一个自增数，起始值为 1，每次增 1\n      'id|+1': 1\n    }]\n  })\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnervjs%2Ftaro-plugin-mock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnervjs%2Ftaro-plugin-mock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnervjs%2Ftaro-plugin-mock/lists"}