npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gunny/mock

v1.2.0

Published

生成模拟数据

Downloads

21

Readme

mock

生成模拟数据。

安装

npm install @gunny/mock

使用

import * as mock from "@gunny/mock";

mock.number(); // 794

API

通用

数字

生成 0 到 1000 的整数:

number(0, 1000); // 227

生成数据包含两位小数:

number(0, 1000, 2); // 760.86

布尔值

boolean(); // false

数组

array(2, (index) => ({
  id: index + 1,
  name: "name" + (index + 1),
})); // [ { id: 1, name: 'name1' }, { id: 2, name: 'name2' } ]

枚举

enumerate(["first", "second", "third"]); // second

日期时间

生成随机日期时间:

datetime(); // 2074-11-07 23:27:31

生成指定范围的日期时间:

datetime("2000-01-01 00:00:00", "2050-12-31 23:59:59"); // 2044-04-29 00:44:16

或者:

datetime(new Date(2000, 0, 1, 0, 0, 0), new Date(2050, 11, 31, 23, 59, 59)); // 2044-09-21 22:10:20

日期

生成随机日期:

date(); // 2012-04-21

生成指定范围的日期:

date("2000-01-01", "2050-12-31"); // 2012-11-18

或者:

date(new Date(2000, 0, 1), new Date(2050, 11, 31)); // 2046-11-06

时间

生成随机时间:

time(); // 22:34:28

生成指定范围的时间:

time("09:00:00", "18:00:00"); // 17:57:00

或者:

time(new Date(0, 0, 1, 9, 0, 0), new Date(0, 0, 1, 18, 0, 0)); // 09:02:44

一句话

word(); // 尴盂凾喃竛
word(2, 6); // 隙謵

一段话

paragraph(); // 娙镋惱袈竅貞芳禘兒哭帾,袒逛蠍坨妸苾,寗艴魴鵜釫鼭冢枔,荹膖嚷猌琡,辖禐岐茗鸝稐籚購艤鄫琱瀥桤切,袸焗伡键薠粉柯圯肢銴恘揎惌葤,秛虯儤趍邽鹎襝輍渀,飞汮瓃縞眶蒑奖臟蠾愅致,輤圈鶍缮厳。

paragraph(10, 50); // 辗葈絧屓椋怐罠釷,缪罰繼侟。

几个段落

paragraphs(); // <p>巈徚酋麊镭輨鵁詤予縎洀岹囊佾忔,鯰蕑坮鷦泖劘餽鬨璗诠臶漁桗蝾釿,阫亣贖瀘鎹,耷満福乖淂歠疏摓饵樘颳阓掛,巘櫂蹝給繧鴉璃倰卖硔皴,蘳瀚簢圽优讼豖蛍璼龝暴渲嚦湌,弸鮼韍疓嫷庽鄎钴覭腡印膇琬啞,缐莙螱嘣赪娉餆钇騄翸軝飗。</p><p>俨蹧湑槿醅偯燓棢椑騶楌孑毡鴝藸欮爩温埜蔓涐黠洉,紻韽岑課鵆剖抚,杽鲶谜慑磙枹蝀,衼忬淕罎毭堊錝戟滚嘟躦枠膄,嫭硛亟蕱蝊祋楛姼稰党,艖及檪菚碕梷摧炟嵊挎。</p><p>毋謱凂嗛敻胱飍掏斝籩恟,縜犱奭繋转罞鹉期,沲禕蕴切券常轋踴浿蒟疏鶇盻棾疉,龑菭毺鞻鎬,鸔娃渪滆家囖诔,夐眈雱叜塐鴷俻怚僛萶鸦,炕貝嘐泒媊捎栭偉苲兴亟冈,绛昺顢诙劓鱖税皑簅囦犤,襊润糢犇棃曣攔穅。</p><p>丗疖垲疥逢蝕渴謙孠籊謫綅岛祭,胜傱鉅撹嵥癘蚂鈗疲轿悑袌浴鉛,哏熽產冥塭饽,鏺健譢杒窶,鳽燬裥尭凩帞众洵躷犀鷋靮,珣陭紺觞反喾瓔慘覀瓡礜域旆皴酡,髏羱曌餸濳蹡旚箦鑋,醗醑羳暄享丶,辚篐鼈鵦虹鈋笧币單籑烞,萛醽寞携骩。</p><p>逰羲摫膔缩镸鍉憯中,巛譔熻勁懨篣鐜昇賳鹈蒠噅尥巂,汃琵彽檇踟别虺濹紳嬒礄脂瀀评,挶雨鯄逡嶏颶峭嵉檙蝰礤氜婗幉串,瑓椤铣秖。</p><p>烠綀驷铄锍芯巫憎詰廄縜鶆,畄駾铲掳螀小嵏霠药坶躸鯶禌磴鶰,藳峂糞獨山伬,秂矽穴莰塬齀瀚,嵔飘詫嘏峲呴,圹濻浠掹昮夎冣彸笮鬼箣窓魙晏雬,孟綖肳讱庴珩挾燫鋍馀虨,螠讓硡餃歽,櫂誖楔汪彸淍攛蹏鷥较铁蹉,鍠滁撛莞爑供粕。</p>

paragraphs(2, 3); //<p>妳桮駽萠邖啧鍵邴喟,湸揕窍繆鸘氭濽嚦硶列珿鈤效,噽閪葦庵谩纍塬,虿噉晎謊鍁鍐玀仍淥漪僦,雝桌庢罾蟸叀咼砒枣儀尤粛瓒畗皉,鑪彐晻摜韂槩,悭啓贏鉊锨躀,胾锐輂薟嗶祩渟叮,曊蘪碪啞。</p><p>丸芼盔戚骦巆弐陵厭慺儋癥筵慗黮,顚淥綖揹搶闱継誆嗮羶忑熰鏴挻,牅锁龏帊沿怀羀砙寊嫏,訮勅橿螳愁雩脭郣胀粓菒源酬,撓墻鲭樺緻鍜堻嗊鑰吋韂躟挷。</p>

UUID

uuid(); // b3f45642-05ab-4911-04f1-5848ff3dcf56

递增 ID

const id = createId();
id(); // 1
id(); // 2
id(); // 3

自定义起始值:

const id = createId(10);
id(); // 11
id(); // 12
id(); // 13

自定义步长:

const id = createId(10, 2);
id(); // 12
id(); // 14
id(); // 16

个人

姓名

name(); // 伯鹏

男性姓名

name("男"); // 金和平

女性姓名

name("女"); // 荀桂兰

lastName(); // 古

firstName(); // 军

男性名

firstName("男"); // 建平

女性名

firstName("女"); // 雨涵

性别

gender(); // 女

英文姓名

enName(); // Dylan Lee

英文男性姓名

enName("male"); // Justin Sanchez

英文女性姓名

enName("female"); // Sophia Thomas

英文姓

enLastName(); // Taylor

英文名

enFirstName(); // Chloe

英文男性名

enFirstName("male"); // Christopher

英文女性名

enFirstName("female"); // Avery

英文性别

enGender(); // female

称谓

appellation(); // 教授

婚姻状况

marital(); // 分居

移动号码

mobile(); // 18998694709

固定号码

landline(); // 0835-48300226

电子邮箱

email(); // [email protected]

身份证号码

idCardNo(); // 766610192606308042

职业

profession(); // 律师

银行卡号

bankCardNo(); // 6271647963012682853

学历

qualification(); // 初中

星座

zodiacSign(); // 水瓶座

根据日期获取星座

zodiacSign("2024-11-12"); // 天蝎座
zodiacSign(new Date(2024, 8, 24)); // 天秤座

身高(cm)

height(); // 194

体重(kg)

humanWeight(); // 79

生日

birthday(); // 1999-12-17

爱好

hobby(); // 手工艺

个性签名

signature(); // 简单生活,快乐每一天。

交友类型

friendshipType(); // 心灵伴侣型

我的特质

trait(); // 幽默感

形容词

adjective(); // 乐于助人

游戏的职业

gameProfession(); // 风之刺客

昵称

nickname(); // 坚强不屈的幻影战士

批量昵称

bulkNickname(10);
// [
//   '出色的守望者',
//   '友爱的魔法猎手',
//   '温柔的法师',
//   '热爱学习的龙之法师',
//   '自由的水之使者',
//   '乐观向上的光明使者',
//   '和蔼可亲的血法师',
//   '殷勤的烈焰法师',
//   '自律的自然法师',
//   '知足的夜行者'
// ]

商业

公司名

company(); // 广州市海跃室内装饰设计有限责任公司

部门

department(); // 人力资源部

行业

industry(); // 牧业

位置

区域

region(); // 西南区

省份

province(); // 江西省

城市

city(); // 吕梁市

区县

county(); // 岳普湖县

地址

address(); // 福建省南平市武夷山市模拟25街道模拟26路22号49栋211层41室

电脑

ipv4

ipv4(); // 199.171.174.50

ipv6

ipv6(); // 70b7:e41a:8f58:6902:bf9a:79f1:4f6a:47f6

MAC 地址

mac(); // 6f:8b:c8:e9:e1:f1

文件名

fileName(); // g2nch8.txt

文件路径

filePath(); // /home/Administrator/Documents/

包含文件名的文件路径

filePath(true); // /home/Administrator/Documents/uchjko.docx

文件扩展名

extension(); // xlsx

网址

url(); // https://developer.ehbihwoe.jp/HHvVQNBrKv

主机名

hostname(); // drive.prhdmczuey.biz

产品

产品名

productName(); // 卓沃

产品类别

productCategory(); // 家具

颜色

color(); // 黑色

尺寸

size(); // 细码

重量

weight(); // 4.7kg

条形码

barcode(); // 9508464975848

sku

sku(); // MX-KJ-4242-U

工具函数

integer

生成一个整数:

integer(10, 100); // 54

decimal

生成一个包含指定小数位数的小数:

decimal(10, 100, 2); // 34.36

random

不传递第三个数或者传递 0,等同于 integer,否则等同于 decimal

random(10, 100); // 26
random(10, 100, 2); // 60.26

pick

从字符串随机挑选一个字符,或从数组中随机挑选一个元素,或从对象中随机挑选一个值:

pick("0123456789"); // 3
pick(["first", "second", "third"]); // first
pick({ key1: "first", key2: "second", key3: "third" }); // second

arrayShuffle

打乱数组(会改变原数组):

arrayShuffle([1, 2, 3, 4, 5, 6, 7, 8]); // [ 4, 2, 6, 1, 8, 5, 7, 3]

arrayUniqueBulk

批量生成不重复的数组元素:

mock.arrayUniqueBulk(10, () => {
  return mobile();
});

upperFirst

将字符串首字母变成大写:

upperFirst("mockData"); // MockData

lowerFirst

将字符串首字母变成小写:

lowerFirst("MockData"); // mockData

pascalCase

将字符串变成大驼峰格式:

pascalCase("mock data"); // MockData
pascalCase("Mock data"); // MockData
pascalCase("Mock Data"); // MockData
pascalCase("Mock-Data"); // MockData
pascalCase("mock-data"); // MockData
pascalCase("mock_data"); // MockData
pascalCase("mockData"); // MockData

camelCase

将字符串变成小驼峰格式:

camelCase("mock data"); // mockData
camelCase("Mock data"); // mockData
camelCase("Mock Data"); // mockData
camelCase("Mock-Data"); // mockData
camelCase("mock-data"); // mockData
camelCase("mock_data"); // mockData
camelCase("MockData"); // mockData

capitalize

将字符串首字母变成大写,其它字母变成小写。

capitalize("mock data"); // Mock data
capitalize("Mock data"); // Mock data
capitalize("Mock Data"); // Mock data
capitalize("Mock-Data"); // Mock-data
capitalize("mock-data"); // Mock-data
capitalize("mock_data"); // Mock_data
capitalize("mockData"); // Mockdata

kebabCase

将字符串变成连字符格式:

kebabCase("mock data"); // mock-data
kebabCase("Mock data"); // mock-data
kebabCase("Mock Data"); // mock-data
kebabCase("Mock-Data"); // mock-data
kebabCase("mock-data"); // mock-data
kebabCase("mock_data"); // mock-data
kebabCase("MockData"); // mock-data

pickMultiChar

从字符串中随机挑选指定个数的字符组成新的字符串:

pickMultiChar("0123456789", 4); // 7079

formatDate

格式化日期对象:

支持以下占位符:
YYYY: 年
MM: 月
DD: 日
HH: 时
mm: 分
ss: 秒
formatDate(new Date(), "YYYY-MM-DD HH:mm:ss"); // 2024-08-30 17:06:54

开源协议

本项目基于 MIT 协议,请自由地享受和参与开源。

如何维护

克隆仓库到本地

git clone https://github.com/sutras/mock.git

安转依赖

npm install

开发

npm run dev

查看输出结果

npm run preview

打包构建

npm run build

测试

npm run test