mockjs+vite-plugin-mock在V3+ts项目中的使用

本文介绍了如何在Vue3项目中使用vite-plugin-mock进行API模拟,包括安装、基本配置、创建mock文件、响应参数处理以及拓展示例。适合前端开发小白学习mock数据管理在开发环境中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🔮 欢迎点赞 👍٩( ´︶` )( ´︶` )۶ 收藏 🌟留言 💌 欢迎讨论!💕
🔮 本文由 【第四人称Alice】 原创,首发于 CSDN ✨✨✨
🌍 由于博主还属于前期的前端开发小白,欢迎大家留言提出更好的意见,大家共同进步!💭

声明:博主的项目是vue3+ts

一、安装

npm i mockjs -D
npm i vite-plugin-mock -D
npm i axios

二、基础示例

1、创建mock文件

在src/mock/demo文件夹下新建test.ts文件

// src/mock/getInfo.ts

import { MockMethod } from "vite-plugin-mock";

export default [
  {
    url: "/api/getUserInfo", // url参数必须为string格式
    method: "get",
    response: () => {
      return "This is an example.";
    },
  },
] as MockMethod[];

2、在vite.config.ts中进行配置

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { viteMockServe } from "vite-plugin-mock";
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    viteMockServe({
      mockPath: "./src/mock", // 设置模拟.ts 文件的存储文件夹
      enable: true, // 是否启用 mock 功能
    }),
  ],
});

 注意:基础示例仅在本地开发环境中使用,如需在打包后仍然能够使用请参考官方文档中的

“在生产环境中使用”

https://github.com/vbenjs/vite-plugin-mock/blob/main/README.zh_CN.md

3、在页面中使用

<script lang="ts" setup>
import axios from "axios";
import { onMounted, ref } from "vue";
let data = ref();
onMounted(() => {
  axios.get("/api/getUserInfo").then((res) => {
    console.log(res);
    data.value = res.data;
  });
});
</script>

<template>
  <p>{{ data }}</p>
</template>

<style scoped>
p {
  color: #d69e9e;
}
</style>

4、运行npm run dev

5、运行结果

运行结果

三、拓展示例

// src/mock/getList.ts
import { MockMethod } from "vite-plugin-mock";
export default [
  {
    url: "/api/getList",
    method: "post",
    timeout: 1000,
    // get请求使用query作为参数,post请求使用body作为参数
    response: ({ body }) => {
      // 对传入的参数做校验逻辑
      // console.log(body, "123query");//会在控制台打印出来
      return {
        code: 200,
        message: "ok",
        "data|5": [
          //'data|20',模拟20条数据,前面是参数,后面是值
          {
            // uid: "@id",// 生成一个随机的唯一标识符。
            //     "age|18-50": 18, // 'age|18-50' :18 从18开始随机18-50的年龄
            email: "@email()", // @email() 随机邮箱
            nickname: "@cname", // 生成一个随机的中文昵称。
            age: "@integer(10-100)", // 生成一个随机的年龄在10到100之间的整数。
            "id|+1": 0, // 'id|+1':0,就是从0开始id自增1
            url: "@image", // 生成一个随机的图片链接。
            city: "@city", // 生成一个随机的城市名称。
            country: "@county(true)", // 生成一个随机的国家名称,带有省份信息。
            province: "@province", // 生成一个随机的省份名称。
            mobile_phone: "@phone", // 生成一个随机的手机号码。
            // email: "@email", // 生成一个随机的电子邮箱地址。
            region: "@region", // 生成一个随机的地区信息。
            date: "@date(yyyy-MM-dd)", // @date(yyyy-MM-dd) 随机日期
            description: "@paragraph", // @paragraph 随机签名介绍
            "menus|3": [
              {
                menu_name: "一级别导航",
                "id|+1": 0,
                code: "Nav1",
                "children|5": [
                  {
                    code: "about",
                    menu_url: "views/about",
                    access_permissions: '["about"]',
                    children: [],
                    menu_name: "测试1",
                    "id|+1": 0,
                  },
                ],
              },
            ],
          },
        ],
      };
    },
  },
] as MockMethod[];

四、官网地址

1、mockjs官方文档参考地址:

Mock.jsicon-default.png?t=N7T8http://mockjs.com/

2、GitHub参考地址:

Home · nuysoft/Mock Wiki · GitHubA simulation data generator. Contribute to nuysoft/Mock development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/nuysoft/Mock/wiki

3、mockjs示例地址

Mock.jsicon-default.png?t=N7T8http://mockjs.com/examples.html

4、vite-plugin-mock官网地址

https://github.com/vbenjs/vite-plugin-mock/blob/main/README.zh_CN.mdicon-default.png?t=N7T8https://github.com/vbenjs/vite-plugin-mock/blob/main/README.zh_CN.md

五、项目地址

有疑惑的宝子可直接拉代码查看完整项目内容:Alice/vite-plugin-mock

图片数据模拟已更新:

vue项目搭建基础内容router\pinia\element-plus-CSDN博客

更新中...

<think>好的,我需要帮助用户了解如何在Vue 3和TypeScript项目使用vite-plugin-require插件进行代码混淆。首先,我需要确认用户的需求是否正确,因为vite-plugin-require的主要功能是处理require语句的转换,而不是代码混淆。可能用户混淆了这两个概念。不过,我需要先核实vite-plugin-require的用途。 查阅文档发现,vite-plugin-require主要用于将CommonJS的require语法转换为ES模块,以便在Vite项目使用。这与代码混淆无关。因此,用户可能需要的是代码混淆插件,而不是这个插件。常见的Vite代码混淆插件有vite-plugin-obfuscator,它基于javascript-obfuscator库。 接下来,我应该引导用户使用正确的工具。首先,安装正确的插件:vite-plugin-obfuscator。然后,配置vite.config.ts文件,引入插件并进行设置。需要确保用户的项目已经正确安装相关依赖,比如javascript-obfuscator。 然后,可能需要说明如何配置混淆选项,比如控制流扁平化、字符串加密等。同时,提醒用户在构建时才会进行混淆,开发模式下不需要。此外,要注意混淆可能带来的性能影响和调试困难,建议用户测试混淆后的代码是否正常运行。 用户提到的TypeScript项目,需要确保TypeScript配置与混淆插件兼容,可能不需要额外配置。最后,生成相关问题,帮助用户深入理解混淆的其他方面,比如优化方法、性能影响和常见问题。</think>在Vue 3 + TypeScript + Vite项目中进行代码混淆,建议使用专门设计的`vite-plugin-obfuscator`而非`vite-plugin-require`(后者主要用于require语法转换)。以下是具体实现步骤: ### 步骤1:安装依赖 ```bash npm install --save-dev vite-plugin-obfuscator javascript-obfuscator ``` ### 步骤2:配置vite.config.ts ```typescript import { defineConfig } from &#39;vite&#39; import vue from &#39;@vitejs/plugin-vue&#39; import { viteObfuscate } from &#39;vite-plugin-obfuscator&#39; export default defineConfig({ plugins: [ vue(), viteObfuscate({ options: { controlFlowFlattening: true, controlFlowFlatteningThreshold: 0.75, stringArray: true, stringArrayThreshold: 0.75, rotateStringArray: true, identifierNamesGenerator: &#39;hexadecimal&#39; } }) ], build: { minify: &#39;terser&#39; // 建议同时启用压缩 } }) ``` ### 步骤3:配置TypeScript支持 在`tsconfig.json`中确保模块解析配置: ```json { "compilerOptions": { "module": "ESNext", "target": "ESNext", "moduleResolution": "node" } } ``` ### 混淆效果示例 原始代码: ```typescript function calculate(a: number, b: number) { return a + b * 2 } ``` 混淆后: ```javascript function _0x12ab(a,b){return a+b*0x2} ``` ### 注意事项 1. 混淆仅在`npm run build`时生效 2. 建议设置不同的环境配置: ```typescript // vite.config.ts const isProduction = process.env.NODE_ENV === &#39;production&#39; plugins: [ isProduction && viteObfuscate({/* 配置 */}) ] ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值