local mock data functionality for vite, support vite 1.x and vite 2.x
yarn add vite-plugin-mockit
https://github.com/xuxihai123/vite-mock-example
module.exports = {
'GET /api/user': { username: 'admin', sex: 5 },
'GET /api/list': function (req, res) {
let query = req.query || {};
return res.json({
limit: query.limit,
offset: query.offset,
list: [
{ username: 'admin1', sex: 1 },
{ username: 'admin2', sex: 0 },
],
});
},
'GET /repos/hello': (req, res) => {
return res.json({
text: 'this is from mock server',
});
},
'GET /api/userinfo/:id': (req, res) => {
return res.json({
id: req.params.id,
username: 'kenny',
});
},
'GET /api/user/list/:id/:type': (req, res) => {
return res.json({
id: req.params.id,
type: req.params.type,
});
},
'POST /api/login/account': (req, res) => {
const { password, username } = req.body;
if (password === '888888' && username === 'admin') {
return res.json({
status: 'ok',
code: 0,
token: 'sdfsdfsdfdsf',
data: {
id: 1,
username: 'kenny',
sex: 6,
},
});
} else {
return res.json({ status: 'error', code: 403 });
}
},
'DELETE /api/user/:id': (req, res) => {
res.send({ status: 'ok', message: '删除成功!' });
},
};
module.exports = [
{
path: '/api/user',
handler: (req, res) => {
return res.json({ username: 'admin', sex: 5 });
},
},
{
path: '/api/list',
handler: function (req, res) {
let query = req.query || {};
return res.json({
limit: query.limit,
offset: query.offset,
list: [
{ username: 'admin1', sex: 1 },
{ username: 'admin2', sex: 0 },
],
});
},
},
{
path: '/repos/hello',
handler: (req, res) => {
return res.json({ text: 'this is from mock server' });
},
},
{
path: '/api/userinfo/:id',
handler: (req, res) => {
return res.json({
id: req.params.id,
username: 'kenny',
});
},
},
{
path: '/api/user/list/:id/:type',
handler: (req, res) => {
return res.json({
id: req.params.id,
type: req.params.type,
});
},
},
{
path: '/api/login/account',
method: 'post',
handler: (req, res) => {
const { password, username } = req.body;
if (password === '888888' && username === 'admin') {
return res.json({
status: 'ok',
code: 0,
token: 'sdfsdfsdfdsf',
data: {
id: 1,
username: 'kenny',
sex: 6,
},
});
} else {
return res.json({ status: 'error', code: 403 });
}
},
},
{
method: 'delete',
path: '/api/user/:id',
handler: (req, res) => {
res.send({ status: 'ok', message: '删除成功!' });
},
},
];
const mockPlugin = require("vite-plugin-mockit");
module.exports = {
plugins: [
mockPlugin({
entry: "./mock/index.js",
watchFiles: [], // watch file or dir change refresh mock
watchOptions: {}, //extension option from chokidar option
ignore: /_test/ // ignore change, support function or regex
// debug: true, // debug log
disable: false // default false
})
]
};
➜ ~ curl -X GET http://127.0.0.1:4000/api/user
{"id":1,"username":"kenny","sex":6}
➜ ~ curl -X GET http://127.0.0.1:4000/api/user/list
[{"id":1,"username":"kenny","sex":6},{"id":2,"username":"kenny","sex":6}]
➜ ~ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"username":"admin","password":"888888"}' http://127.0.0.1:4000/api/login/account
{"status":"ok","code":0,"token":"sdfsdfsdfdsf","data":{"id":1,"username":"kenny","sex":6}}
➜ ~ curl -X DELETE http://127.0.0.1:4000/api/user/88
{"status":"ok","message":"delete success!"}
mock config entry,The default value is./mock/index.js.
watch file or dir change refresh mock, include default entry and entry file directory
extension option from chokidar option
ignore file change, support function or regex, It is used to prevent refresh
Whether to turn on local debugging information,The default value is false
The plugin will only work in a development environment , if you want to disable it, set disable to true, The default value is false