Skip to content

Mock Service Worker browser and node integration for Vite

License

Notifications You must be signed in to change notification settings

iodigital-com/vite-plugin-msw

Repository files navigation

@iodigital/vite-plugin-msw

Mock Service Worker browser and node integration for Vite.

Usage

Install

npm install --save-dev @iodigital/vite-plugin-msw
# yarn add --dev @iodigital/vite-plugin-msw
# pnpm add --save-dev @iodigital/vite-plugin-msw

Define mocks

https://mswjs.io/docs/getting-started/mocks

Add to Vite config

// Import plugin
import msw from "@iodigital/vite-plugin-msw";

// Import msw handlers
import { handlers } from "../mocks/handlers";

// Pass them to plugin
export default defineConfig({
  plugins: [msw({ handlers })],
});

Config

interface VitePluginMswOptions {
  handlers: RequestHandler[];
  mode?: "browser" | "node";
  build?: boolean;
}

Handlers

  • Required

MSW handlers. More information on how to define these: https://mswjs.io/docs/getting-started/mocks

Mode

  • Optional
  • Default: browser

Browser

To start MSW in the client, please follow the Configure worker step and Start worker step in the MSW docs. The mockServiceWorker.js file will be provided by the Vite Dev Server.

Node

This will handle the mocked service worker handlers via a Vite Dev Server plugin.

Build

  • Optional
  • Default: false

A true value will output MSW's mockServiceWorker.js file to the Vite build directory, in case if MSW is needed in production.


Development

npm run dev

Example vite application with plugin

npm run build
cd examples/with-vite
npm run dev
curl http://localhost:3000/api/health

Build

npm run build