欢迎光临
我们一直在努力

独立 Node(mock‑server.js/express /json‑server)模拟数据流行度真实情况

1.独立 Node(mock‑server.js/express /json‑server)模拟数据流行度真实情况

不算最主流,但属于成熟经典方案,大厂内部项目不少在用;开源 vite 模板里用的少

1.1. 现状分布

  • 开源 Vite 模板(若依、vben 等)优先用 Vite 插件 mock
    开源脚手架追求:只启动一个终端 pnpm dev,一条命令跑完整项目,不想让新手额外开第二个终端窗口。
    所以公开模板普遍选择:vite‑plugin‑mock‑dev‑server,牺牲一部分稳定性,换取单命令启动体验。
  • 企业内部真实业务项目,独立 Node mock 使用率很高
    很多公司内部后台,会手写mock‑server.js或者用json‑server:
    • 不受 Vite 版本升级、插件 bug、插件停止维护的影响;
    • mock 逻辑完全独立,vite 只负责 proxy 转发;
    • 联调后端,仅仅修改 proxy 的 target 地址;
    • 增删改查内存数据不会因为改 mock 配置文件就全部清空(插件的知名坑)。

    缺点:package scripts 要配置两条启动命令,新人需要知道要开两个终端。

  • MSW 现在热度上涨,适合单元测试,但写复杂业务接口不如 Node 服务顺手稀土掘金。
  • 1.2. 四种方案通俗对比(针对我们仿‑若依后台)

    表格

    方案开源模板流行度企业内部项目痛点
    vite‑plugin‑mock‑dev‑server ⭐⭐⭐⭐⭐ ⭐⭐⭐ 嵌入 vite,单终端;存在代理冲突、内存数据热更重置、文件名后缀强制规则坑
    独立 express mock‑server.js ⭐⭐ ⭐⭐⭐⭐ 完全独立服务,稳定无插件坑;必须双终端启动
    json‑server(零代码独立 mock) ⭐⭐ ⭐⭐⭐ 只用 json 文件自动生成 CRUD;自定义复杂登录校验逻辑写起来别扭稀土掘金
    MSW ⭐⭐⭐ ⭐⭐⭐⭐ 浏览器层拦截,适合单元测试;写分页、登录业务逻辑繁琐

    1.3. 关键认知

    “流行” 分两种:

  • 教程、开源模板流行:vite 插件占上风,追求开箱即用一条命令;
  • 实际企业业务项目稳定性优先:独立 Node 服务用的很多,不怕插件停更、版本兼容爆炸。
  • 1.4. 针对我们项目二选一建议

    1.4.1. 选项 A:vite‑plugin‑mock‑dev‑server

    ✅优点:只开一个终端,和网上教程对齐
    ⚠️代价:要记住那几个坑:.mock.js后缀、环境变量开关、不要和 proxy 混用、热更新内存数据丢失。

    1.4.2. 选项 B:独立 mock‑server.js(express)

    ✅优点:没有任何 vite 插件坑,写接口语法就是标准后端 express 写法,调试逻辑直观,后续就算升级 Vite 大版本完全不受影响。
    ⚠️代价:需要两个终端;可以配置package.json scripts简化启动。

    "scripts": {
    "dev":"vite",
    "mock":"node mock-server.js"
    }

    开发时,一个终端执行pnpm dev,另一个执行pnpm mock。


    1.4.3. 我建议咱们怎么做?

    咱们做学习搭建仿若依项目,我更偏向B 方案独立 express mock‑server.js:

  • 避开插件一堆历史坑,写 mock 接口就是标准 Node 后端语法,你还顺便学 express;
  • 切换 mock / 真实后端,仅仅修改 vite proxy 的 target;
  • 模拟新增编辑删除,修改 mock 代码,内存数据不会莫名清空。
  • 当然,如果你希望和开源模板一致,不想多开终端,我们就选 A,我把所有坑提前写进注释提醒。

    2. 独立 mock‑server.js 后期完全可以移除

    分两种场景讲清楚:开发阶段、打包上线、联调后端

    2.1. 本地联调后端的时候(还没上线)

    不需要直接删除文件,不用删掉 mock‑server.js。
    只修改 vite.config.js 的 proxy 的 target:

    proxy:{
    '/api':{
    // target:'http://127.0.0.1:3000', // mock服务,开发模拟数据用
    target:'http://真实后端地址:8080', // 对接真实后端
    changeOrigin:true
    }
    }

    • 关掉 pnpm mock 这个终端,不再启动 mock 服务;
    • 前端所有请求全部转发给真实后端;
    • mock‑server.js 文件还留在项目里,保留作为备份,后续如果后端接口挂了,本地调试页面还能切回来用 mock。

    团队项目建议保留,不要直接删除,方便后续维护页面。

    2.2. 打包构建生产 pnpm build

    ✅ mock‑server.js 完全不会打进 dist 产物!

    mock‑server.js 是node 脚本,仅本地开发运行,浏览器永远不会执行这份代码。
    打包 Vite 只会处理 src 下面前端代码,根目录 mock‑server.js、mock 相关依赖 express/cors 是devDependencies开发依赖,生产打包会自动忽略。

    就算文件还在项目文件夹,执行 build 之后 dist 里面看不到任何 mock 相关代码,线上不会有 mock 逻辑、不会泄露模拟数据。

    2.3. 真正彻底移除(不需要 mock 备份时)

    如果你确定以后再也不用这套模拟接口,可以完整清理干净:

  • 删除根目录 mock‑server.js
  • 卸载开发依赖
  • pnpm remove -D express cors

  • vite.config.js 把 proxy 改到真实后端,删掉 scripts 里面的"mock":"node mock-server.js"
  • 整个项目 mock 痕迹全部清除干净。

  • 🆚对比 vite‑plugin‑mock‑dev‑server

    插件版虽然可以环境变量关闭插件,但:

    • 插件代码依然安装在 node_modules;
    • mock 目录文件还在;
    • 要保证环境变量正确,否则一不小心 mock 还在拦截请求;

    独立 mock‑server 逻辑更直白:你不运行node mock‑server.js,mock 就完全不存在,不会偷偷拦截任何请求,没有暗坑。

    小结

  • 联调后端:只停止运行 mock 服务,文件建议保留做备份,不用删除;
  • 打包上线:什么都不用做,mock 不会进入 dist;
  • 彻底不要 mock:删文件 + 卸载 dev 依赖即可。
  • 赞(0)
    未经允许不得转载:171主机测评 » 独立 Node(mock‑server.js/express /json‑server)模拟数据流行度真实情况
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址