{"id":18903,"library":"vite-plugin-fake-server-turbo","title":"Vite Plugin Fake Server","description":"A fake server plugin for Vite that intercepts HTTP requests (XHR and Fetch) to return mock data during development or production. Version 3.0.18, actively maintained with frequent releases (last update ~1 month ago). Supports ESM/CJS, TypeScript type hints via defineFakeRoute, multiple file types (ts, js, mjs, cjs, mts, cts), and both HTTP/1 and HTTP/2. No built-in mock library dependency – works with @faker-js/faker, mockjs, or custom responses. Features include custom response headers/status, timeout simulation, raw response handling, and production build export. Interception is powered by XHook, which has known Firefox issues (see warnings).","status":"active","version":"3.0.18","language":"javascript","source_language":"en","source_url":"https://github.com/condorheroblog/vite-plugin-fake-server","tags":["javascript","faker-server","vite-plugin-fake","vite-plugin-fake-server","vite-plugin-faker","vite-plugin-mock","vite-plugin-mock-server","typescript"],"install":[{"cmd":"npm install vite-plugin-fake-server-turbo","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-fake-server-turbo","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-fake-server-turbo","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency – required Vite project to function as a plugin","package":"vite","optional":false}],"imports":[{"note":"Named export only; default import will fail (ESM).","wrong":"import vitePluginFakeServer from 'vite-plugin-fake-server'","symbol":"vitePluginFakeServer","correct":"import { vitePluginFakeServer } from 'vite-plugin-fake-server'"},{"note":"defineFakeRoute is exported from /client subpath, not the main entry. Using the wrong import path will result in undefined.","wrong":"import { defineFakeRoute } from 'vite-plugin-fake-server'","symbol":"defineFakeRoute","correct":"import { defineFakeRoute } from 'vite-plugin-fake-server/client'"},{"note":"FakeRoute is a type exported from /client. Use type import for TypeScript to avoid runtime errors.","wrong":"import { FakeRoute } from 'vite-plugin-fake-server'","symbol":"FakeRoute","correct":"import type { FakeRoute } from 'vite-plugin-fake-server/client'"}],"quickstart":{"code":"// vite.config.ts\nimport { defineConfig } from 'vite';\nimport { vitePluginFakeServer } from 'vite-plugin-fake-server';\n\nexport default defineConfig({\n  plugins: [vitePluginFakeServer()],\n});\n\n// fake/user.fake.ts\nimport { defineFakeRoute } from 'vite-plugin-fake-server/client';\n\nexport default defineFakeRoute([\n  {\n    url: '/mock/get-user-info',\n    response: () => ({ id: '123', name: 'John' }),\n  },\n]);\n\n// Then fetch('/mock/get-user-info') in your app; the fake server intercepts and returns the mock response.","lang":"typescript","description":"Sets up vite-plugin-fake-server with a Vite config, defines a fake route for /mock/get-user-info, and intercepts the request at runtime."},"warnings":[{"fix":"Use import { defineFakeRoute } from 'vite-plugin-fake-server/client'","message":"import { defineFakeRoute } from 'vite-plugin-fake-server' does not work – must import from 'vite-plugin-fake-server/client'","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Upgrade to v2.2.2+ which includes a workaround for Firefox XHR payload issue","message":"v2.2.1: XHook cannot carry a payload in Firefox (https://github.com/jpillora/xhook/issues/183) – affecting Fetch requests","severity":"breaking","affected_versions":">=2.2.1 <2.2.2"},{"fix":"Do not use this plugin for server-side mock data; rely on standard mocking libraries like vitest-fetch-mock for Node tests","message":"Interception only works in browser – not during SSR or Node.js environments","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure your glob patterns are compatible with tinyglobby (e.g., {**/*.fake.ts} works, but some fast-glob extensions might fail)","message":"v2.1.4 replaced fast-glob with tinyglobby; any custom glob patterns from fast-glob may not work","severity":"deprecated","affected_versions":">=2.1.4"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use named import: import { vitePluginFakeServer } from 'vite-plugin-fake-server'","cause":"Default import used instead of named import (e.g., import vitePluginFakeServer from 'vite-plugin-fake-server')","error":"TypeError: vitePluginFakeServer is not a function"},{"fix":"Import from 'vite-plugin-fake-server/client' instead","cause":"Import from wrong path (e.g., import { defineFakeRoute } from 'vite-plugin-fake-server')","error":"ReferenceError: defineFakeRoute is not defined"},{"fix":"Rename to .mjs or .mts, or set \"type\": \"module\" in package.json, or use CommonJS syntax (module.exports) in .cjs files","cause":"The plugin's fake file uses ESM `export default` but the project is configured as CommonJS or the file extension is .js without type: module","error":"SyntaxError: Cannot use import statement outside a module (in fake file)"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}