πMock data easily with webpack
npm i -D mocker-webpack-plugin
webpack >= 4.x is supported
// import
const MockerWebpackPlugin = require("mocker-webpack-plugin")
// Webpack plugin config
new MockerWebpackPlugin()
If you want to request /api/user
, consider your project path is:
Project
βββ build
β βββ webpack.conf.js
βββ mocks
β βββ api
β βββ user.js <--- It's here
βββ node_modules
βββ src
βββ components
βββ configs
βββ pages
βββ public
βββ routers
And if you want to request /multi/level/url/like/this
, just create multi-level directory.
This plugin supports files like:
user.js
user.json
user/index.js
user/index.json
user
If using .js
file:
- support returning pure object (JSON)
- support accessing
request
andresponse
object (ref: express api - req)
To specify your mock catalogue, pass path
option like new MockerWebpackPlugin({path})
, default is ${WebpackConfigContext}/mocks
.
json
{
"status": 0,
"msg": "",
"data": {}
}
js
modules.exports = {
status: 0,
msg: "",
data: {
// ...
}
}
js (with express)
// GET /search?user=zphhhhh
module.exports = (req, res) => {
if (req.query.user) {
return {
status: 0,
msg: "",
data: {
greet: `hello, ${req.query.user}!`
}
}
} else {
return {
status: 1,
msg: "please login",
data: null
}
}
}
interface MockerOptions {
/** set mock path (absolute path!), default to `${WebpackConfigContext}/mocks` */
path: String;
/** set webpack-dev-server mode, default to `before`, ref `WebpackConfig.devServer.before` */
mode: 'before' | 'after' | 'setup';
}