/unplugin-auto-vconsole

Primary LanguageTypeScriptMIT LicenseMIT

unplugin-auto-vconsole

NPM version

当你希望使用 vconsole,并且希望在生产环境使用,并且还不希望正常用户看到,并且还不希望占用正常用户加载速度或者加载的 js 体积时,你可能用得上

  1. 可以帮助你快捷的引入 vconsole 以方便进行移动端的调试

  2. 当你需要线上环境调试时只需要添加固定参数,即可动态加载并开启 vconsole,eg:http://baidu.com?enable_console=1

  3. 普通用户并不会开启,并且是动态引入,不会给普通用户增加额外的 js 文件体积(vconsole 会被单独打包、但用户默认不会加载)

支持以下配置:

{
  // 生产环境带有哪个参数字段时需要开启 默认为 enable_console
  field?: string;
  // 是否构建阶段 默认为false
  isBuild?: boolean;
  // 是否开启vconsole,有些时候开发环境不需要开启、需要自定判断 默认为 true
  enabled?: boolean;
  // 注入的入口文件 默认为:src/main.ts
  entry?: string | string[];
  // vconsole的配置 默认空
  config?: Object;
}

Install

使用 npm / yarn / pnpm

npm i vconsole
npm i unplugin-auto-vconsole -D
Vite
// vite.config.ts
import unpluginVconsole from "unplugin-auto-vconsole/vite";

// 当需要更细致的决定是否需要启动vconsole时
function vconsoleEnabled() {
  if (isBuild) {
    return true;
  } else {
    return true;
  }
}

export default defineConfig({
  plugins: [
    unpluginVconsole({
      field: "enable_console",
      isBuild: command === "build",
      entry: resolve("src/main.ts"),
      enabled: vconsoleEnabled(),
      config: { theme: "dark" },
    }),
  ],
});

Example: playground/


Rollup
// rollup.config.js
import unpluginVconsole from "unplugin-auto-vconsole/rollup";

export default {
  plugins: [
    unpluginVconsole({
      isBuild: command === "build",
      entry: resolve("src/main.ts"),
    }),
  ],
};


Webpack
// webpack.config.js
module.exports = {
  /* ... */
  plugins: [
    require("unplugin-auto-vconsole/webpack")({
      isBuild: command === "build",
      entry: resolve("src/main.js"),
    }),
  ],
};


Nuxt
// nuxt.config.js
export default {
  buildModules: [
    [
      "unplugin-auto-vconsole/nuxt",
      {
        isBuild: command === "build",
        entry: resolve("src/main.js"),
      },
    ],
  ],
};

This module works for both Nuxt 2 and Nuxt Vite


Vue CLI
// vue.config.js
module.exports = {
  configureWebpack: {
    plugins: [
      require("unplugin-auto-vconsole/webpack")({
        isBuild: command === "build",
        entry: resolve("src/main.js"),
      }),
    ],
  },
};


esbuild
// esbuild.config.js
import { build } from "esbuild";
import unpluginVconsole from "unplugin-auto-vconsole/esbuild";

build({
  plugins: [
    unpluginVconsole({ isBuild: command === "build", entry: "src/main.js" }),
  ],
});