Mockjs 是 Mockjs 的 ESM 重构版本,由于 Mockjs 源代码实在太过久远,本人用了一个月时间将 Mockjs 的大部分模块进行细分与简化,使用 Vite 打包,便于广大开发者学习。
npm i -D mockjs-ts
registerRandom
方法注册自定义随机函数。本项目维持与 Mockjs 一致的 API,故原作者的教程是完全可以实现的。 官方网站:http://mockjs.com/
不用修改任何的 API ,只需要改变 Mockjs 的引用方式即可。
<script src="https://cdn.jsdelivr.net/npm/mockjs-ts/dist/mock.umd.js"></script>
import Mock from 'Mock';
import Mock from 'https://cdn.jsdelivr.net/npm/mockjs-ts/dist/mock.mjs';
Mock.mock('@timestamp'); // 生成数字型的 timestamp
Mock.mock('fake/1', 'get', {
'timestamp|10': ['@timestamp'],
});
fetch('fake/1')
.then((res) => res.json())
.then(console.log);
Mockjs 无疑是一个非常优秀的开源库,这个开源库在模块化思想还没有开始流行,运用类似 jQuery 的编程结构完成了对 Mockjs 的编写,作者的功底很深厚,几乎每个代码文件都有 500 多行,大量运用函数重载,但是整个 Mockjs 的 bug 出奇的少,足见其对于整个项目的理解。
我想要对 Mockjs 进行修改的原因是我的前端爬虫项目需要一个前端的 API 后台,而 Mockjs 对 fetch 这个已经流行了很久的新 API 没有进行适配!所以我下定决心将 Mockjs 全部使用 esm 模块化的方式对源代码进行了重写,重写过程中发现了很多不严谨的地方也加以了限制,对于某些底层的繁复的代码使用 lodash 的函数进行了替代。完善后的 Mockjs 是完全可以运行在浏览器端的,而且完整地运行相应地函数。