Code Monkey home page Code Monkey logo

Comments (5)

pengzhanbo avatar pengzhanbo commented on May 28, 2024

使用 vite preview 命令时, 默认的 modeproductioncommandserve

可以在 vite.config.ts 配置文件中,通过

const isPreview = mode === 'production' && command === 'serve'

简单的判定为 预览模式。当为预览模式时,添加 mock 插件即可:

import { defineConfig } from 'vite'
import mockDevServerPlugin from 'vite-plugin-mock-dev-server'

export default defineConfig(({ mode, command }) => {
  const isPreview = mode === 'production' && command === 'serve'
  return {
     plugins: [ isPreview && mockDevServerPlugin() ],
  }
})

from vite-plugin-mock-dev-server.

gitoftom avatar gitoftom commented on May 28, 2024

默认是写死了预览模式才能使用mock模拟请求是么?也就是yarn dev启动方式是不能用mock数据得。本来像根据.env里面配置得开关决定yarn dev下能不能用mock的。看来不行

from vite-plugin-mock-dev-server.

pengzhanbo avatar pengzhanbo commented on May 28, 2024

我是根据你的需求描述,推测你想实现的功能,再给的代码示例,说明如何只在 vite preview 下启用插件。

插件默认就是支持在 vite devvite preview 下都支持模拟请求。 但插件不会支持通过插件配置项来控制是否启用插件,因为这种需求只需要在用户侧的 vite config 中通过选择是否添加插件即可实现。

如果你想通过 .env 环境变量来控制 是否启用 插件,也一样可以实现你的需求。

在使用 vite preview 命令时,显示指定 mode 模式:
package.json:

{
  "scripts": {
    "preview": "vite preview -m preview"
  }
}

.env.preview:

USE_MOCK = true

.env.development:

USE_MOCK = false

或者不显示声明mode模式, 用 preview 默认的 mode 为 production
.env.production

USE_MOCK = true

vite.config.ts:

import { defineConfig, loadEnv } from 'vite'
import mockDevServerPlugin from 'vite-plugin-mock-dev-server'

export default defineConfig(({ mode, command }) => {
  const env = loadEnv(mode, process.cwd(), '')
  return {
     plugins: [ env.USE_MOCK && mockDevServerPlugin() ],
  }
})

也一样可以实现只在 vite preview 下启用 mock 插件

from vite-plugin-mock-dev-server.

pengzhanbo avatar pengzhanbo commented on May 28, 2024

需要在什么时候启用mock,完全取决你的需求需要在什么维度下选择是否启用,再根据 nodejsvite 提供的支持,以及你的需求,编写对应的 代码。

from vite-plugin-mock-dev-server.

gitoftom avatar gitoftom commented on May 28, 2024

谢谢解答

from vite-plugin-mock-dev-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.