安装mockjs
yarn add mockjs vite-plugin-mock
复制代码
1. 只在开发环境用mockjs
1.1 方式一
/src/mock/index.js
import Mock from 'mockjs';
Mock.mock(/\/api\/user/, "get", {
code: 200,
data: {
id: 123,
username:"123"
},
})
复制代码
1.2 方式二
/src/mock/index.js
import Mock from 'mockjs';
import type { MockMethod } from "vite-plugin-mock"
export default [
{
url: '/api/user',
method: 'get',
response: ( ) => {
return {
code:200,
msg:"ok",
data: () => {
id: 123,
username:"123"
}
}
}
}
] as MockMethod[]
复制代码
vite.config.js
import { defineConfig } from 'vite'
import { viteMockServe } from 'vite-plugin-mock'
export default defineConfig({
plugins: [ viteMockServe({
mockPath: "./src/mock/"
})],
})
复制代码
1.3 无论哪种方式,都要在main.js引入
import './mock/index'
复制代码
1.4 在组件中使用
import axios from 'axios'
axios.get('/api/user').then((res)=>{ console.log(res); })
复制代码
2. 生产环境也要用mockjs
2.1 /src/mock/index.js
import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'
export function setupProdMockServer() {
createProdMockServer([{
url: "/api/getUsers",
method: "get",
response: () => {
return {
code: 0,
message: "ok",
data: {
id:123,
username:"123"
},
}
}
}])
}
复制代码
2.2 main.js
import { createApp } from 'vue'
import App from './App.vue'
import { setupProdMockServer } from './mock/index';
if (process.env.NODE_ENV === 'production') {
setupProdMockServer();
}
createApp(App).mount('#app')
复制代码
2.3 vite.config.js
import { defineConfig } from 'vite'
import { resolve } from 'path'
import { viteMockServe } from 'vite-plugin-mock'
export default defineConfig({
plugins: [ viteMockServe({
supportTs: true,
logger: false,
mockPath: "./src/mock/",
localEnabled: false,
prodEnabled: true,
injectCode: `import { setupProdMockServer } from './src/mock';setupProdMockServer();`,
watchFiles: true,
injectFile: resolve("src/main.js"),
}
})
复制代码
2.4 在组件中使用
import axios from 'axios'
axios.get('/api/user').then((res)=>{ console.log(res); })