从 Vue CLI 生产环境构建中排除 Mirage

由于 Mirage 是一款开发工具,因此您应该配置 Vue CLI 在为生产环境构建您的应用时排除它。这将使 miragejs 库不包含在您的应用中,并确保用户不会下载任何不必要的代码。

您可以使用您的 vue.config.js 文件来实现这一点。

步骤 1:安装 null-loader

null-loader 库添加到您的项目中

# Using npm
npm install --save-dev null-loader

# Using yarn
yarn add -D null-loader

步骤 2:用空包替换 Mirage

接下来,将以下内容添加到您的 vue.config.js

// vue.config.js
module.exports = {
  chainWebpack: (config) => {
    if (
      process.env.NODE_ENV === "production" &&
      process.env.MIRAGE_ENABLED !== "true"
    ) {
      config.module
        .rule("exclude-mirage")
        .test(/node_modules\/miragejs\//)
        .use("null-loader")
        .loader("null-loader")
    }
  },
}

当您为生产环境构建时,这会用一个空模块替换您的应用中的 miragejs 模块。

步骤 3:确保没有对 Server 的生产环境运行时调用

由于我们已经用一个空模块替换了 miragejs,我们需要确保我们不会在生产环境运行时代码中调用 makeServer(或使用 Mirage 的任何 API),因为这些 API 不再存在。

我们可以通过确保任何启动 Mirage 的代码都包装在 process.env.NODE_ENV 检查中来实现这一点

// src/main.js
import Vue from "vue"
import App from "./App.vue"
import { makeServer } from "./server"

Vue.config.productionTip = false

if (process.env.NODE_ENV === "development") {
  makeServer()
}

new Vue({
  render: (h) => h(App),
}).$mount("#app")

使用此配置,Mirage 既不会包含在您的生产环境中,也不会在生产环境中被访问。