vscode无内置“一键造数”功能,需手动编写node.js脚本(如generate-data.js)并用faker.js生成测试数据;配置launch.json支持f5调试,结合express等服务自动加载json数据实现开发流程闭环。

Node脚本生成测试数据必须手动写,VSCode不提供“一键造数”功能
VSCode本身没有内置的数据生成器,所谓“自动生成测试数据”,本质是用Node.js写脚本,再通过VSCode的终端或调试器运行它。别被某些插件宣传误导——真正可控、可复用、可版本管理的方式,永远是你自己写的generate-data.js。
用faker.js快速构造真实感数据,但要注意版本和ESM兼容性
faker是目前最主流的Node端假数据生成库,但v7+默认使用ESM,而很多老项目仍是CommonJS。如果你执行node generate-data.js报Cannot use import statement outside a module,说明你装的是faker@8.x(纯ESM)但没配type: "module"。
- 稳妥方案:安装
npm install faker@7.6.0,它支持CommonJS,直接const { faker } = require('faker'); - 新项目推荐:升级到
faker@8+,并在package.json里加"type": "module",然后用import { faker } from 'faker'; - 生成100条用户数据示例:
const fs = require('fs'); const { faker } = require('faker'); const users = Array.from({ length: 100 }, () => ({ id: faker.string.uuid(), name: faker.person.fullName(), email: faker.internet.email(), createdAt: faker.date.recent({ days: 30 }).toISOString() })); fs.writeFileSync('mock-users.json', JSON.stringify(users, null, 2));
VSCode里运行和调试数据生成脚本,关键在launch.json配置
想边写边调、设断点看某条数据生成逻辑?靠终端敲命令太慢。必须配好.vscode/launch.json,否则F5就报错。
- 最简可用配置(适用于
generate-data.js在项目根目录):{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Run data generator", "program": "${file}", "console": "integratedTerminal", "internalConsoleOptions": "neverOpen" } ] } - 别漏掉
"program": "${file}"——它让F5总运行当前打开的文件,而不是硬编码某个路径 - 如果脚本依赖环境变量(比如数据库连接串),在配置里加
"env": { "NODE_ENV": "development" }
生成后数据如何自动加载进开发服务,避免手动复制粘贴
生成完mock-users.json就结束?不是。真正的效率提升在于“生成即可用”。常见做法是让本地开发服务器(如Express、NestJS)在启动时读取该文件并挂为API路由。
- Express示例:在
app.js里加app.get('/api/users', (req, res) => { const data = require('./mock-users.json'); res.json(data); }); - 注意:
require()只认JSON/JS文件,且缓存结果;改数据后需重启服务,或改用fs.readFileSync+JSON.parse实现热重载 - 更进一步:把
node generate-data.js && npm start写进package.json的"scripts": { "dev:data": "..." },VSCode任务面板一键触发
真正卡住人的从来不是“怎么生成”,而是生成后的路径引用、模块导入方式、以及是否和开发流程链路打通。一个require('./mock-users.json')写错相对路径,比写一百行faker调用更让人崩溃。











