從 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 將不會在您的生產環境中包含或存取。