Webpack Plugin
Use mokup/webpack to integrate Mokup with webpack-dev-server and webpack builds.
Install
bash
pnpm add -D mokupbash
npm install -D mokupbash
yarn add -D mokupbash
bun add -d mokupUsage
Use cases:
- Add Mokup mocks to webpack-dev-server without changing app code.
- Emit SW assets during webpack builds for browser-level mocking.
Recommended (with wrapper):
ts
import { mokupWebpack } from 'mokup/webpack'
const withMokup = mokupWebpack({
entries: {
dir: 'mock',
prefix: '/api',
},
})
export default withMokup({})Direct plugin (short name):
ts
import { createWebpackPlugin } from 'mokup/webpack'
export default {
plugins: [
createWebpackPlugin({
entries: {
dir: 'mock',
prefix: '/api',
},
}),
],
devServer: {},
}Service Worker mode
Use cases:
- Run mock handlers in a browser Service Worker during webpack builds.
- Share the same mock directory between dev-server and SW.
Demo:
ts
import { createWebpackPlugin } from 'mokup/webpack'
export default {
plugins: [
createWebpackPlugin({
entries: {
dir: 'mock',
prefix: '/api',
mode: 'sw',
sw: {
path: '/mokup-sw.js',
scope: '/',
},
},
}),
],
}Options
Options match the Vite plugin: top-level entries + playground, plus entry options for each item. See Vite Plugin for the full list.
Strict diagnostics
errorOn is also available in webpack mode. Use it to fail startup or build when selected diagnostics are detected instead of only printing warnings.
Example:
ts
import { createWebpackPlugin } from 'mokup/webpack'
export default {
plugins: [
createWebpackPlugin({
errorOn: ['invalid-route', 'sw-conflict'],
entries: {
dir: 'mock',
prefix: '/api',
mode: 'sw',
},
}),
],
}Supported categories are the same as Vite: invalid-route, unsupported-fields, missing-handler, duplicate-route, and sw-conflict.
Notes
- Published packages are ESM-only. Prefer
webpack.config.tsorwebpack.config.mjs. - Dev server support uses
devServer.setupMiddlewares; ensurewebpack-dev-serveris enabled. mokupWebpack(...)auto-creates adevServerobject, so you can omit it unless you need custom dev-server settings.- The SW lifecycle script is emitted under your assets directory (default
assets/mokup-sw-lifecycle.js). Withhtml-webpack-pluginit is auto-injected; otherwise include it manually.