3.0.0 版本开始编写,准备全面改动。 现在支持 typescript 版本啦!虽然是 Beta 版本,但是已经实现了大部分功能!一天半爆肝完成改写! 完成 Random 部分的测试,测试报告, 这份报告是直接获取项目中的代码并进行前端 typescript 打包生成的!
Mockjs-esm 是 Mockjs 的 typescipt 版本,由于 Mockjs 源代码实在太过久远,本人用了一个月时间将 Mockjs 的大部分模块进行细分与简化,使用 rollup 打包,使用浏览器端打包测试器进行测试,便于广大开发者学习。
本项目维持与 Mockjs 一致的 API,故原作者的教程是可以实现的。 官方网站:http://mockjs.com/
Mockjs-esm 删去了 拦截 url 进行返回的功能,因为在浏览器端有 pollyjs 可以进行这样子的功能,不用重复造轮子了。
修改了部分的 随机 API,(输入数组的方式改变了)大部分 API 不会受到影响。
时间格式化: 由于历史原因,原版 mockjs 的时间格式化与常用的时间库的写法不一致。现在统一使用 dayjs 的写法,参考 https://day.js.org/docs/en/parse/string-format。
// 注意,最为主要的区别是 yyyy 被改成 YYYY 符合从年月日顶层到底层的逻辑
console.log(Random.datetime('YYYY-MM-DD A HH:mm:ss')); // 2021-11-01 AM 06:41:26
npm install @mockjs/core
import Mock from '@mockjs/core';
import Mock from 'https://cdn.jsdelivr.net/npm/@mockjs/core/dist/mock.js';
Mock.mock('@timestamp'); // 生成数字型的 timestamp
Mockjs 无疑是一个非常优秀的开源库,这个开源库在模块化思想还没有开始流行,运用类似 jQuery 的编程结构完成了对 Mockjs 的编写,作者的功底很深厚,几乎每个代码文件都有 500 多行,大量运用函数重载,但是整个 Mockjs 的 bug 出奇的少,足见其对于整个项目的理解。
我想要对 Mockjs 进行修改的原因是我的前端爬虫项目需要一个前端的 API 后台,而 Mockjs 对 fetch 这个已经流行了很久的新 API 没有进行适配!所以我下定决心将 Mockjs 全部使用 esm 模块化的方式对源代码进行了重写,重写过程中发现了很多不严谨的地方也加以了限制,对于某些底层的繁复的代码使用 lodash 的函数进行了替代。完善后的 Mockjs 是完全可以运行在浏览器端的,而且完整地运行相应地函数。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。