Home

Awesome

vite-plugin-removelog

生产环境下移除 consolevite 插件

<br /> <br />

动机 🦒

不希望开发时的日志在生产环境下被人看到

<br /> <br /> <br />

特性 🦖

<br /> <br /> <br />

使用 🦕

安装

npm i vite-plugin-removelog -D
<br /> <br />

配置

// vite.config.js
import Removelog from "vite-plugin-removelog";

export default defineConfig({
  plugins: [Removelog()],
});
<br />

包含

// vite.config.js
import Removelog from "vite-plugin-removelog";

export default defineConfig({
  plugins: [
    Removelog({
      // 默认包含 log,warn,error
      include: ["log", "warn"],
    }),
  ],
});
<br />

规范

可以通过 normalize 来自定义哪些模块需要被作用

// vite.config.js
import Removelog from "vite-plugin-removelog";

export default defineConfig({
  plugins: [
    Removelog({
      // 返回 Truthy 时,模块被将作用
      normalize(id) {
        return /(\.vue|\.[jt]sx?)$/.test(id);
      },
    }),
  ],
});
<br />

忽略 node_modules

可以通过 ignoreNodeModules 忽略 node_modules 包的处理

// vite.config.js
import Removelog from "vite-plugin-removelog";

export default defineConfig({
  plugins: [
    Removelog({
      // 默认为 true
      ignoreNodeModules: true,
    }),
  ],
});
<br /> <br />

原理

该插件不传入 normalize 时由 vite 内置的 esbuild 进行转换,当传入 normalize 时,则为 gogocode 进行转换。

gogocode 实现的转换也是导出的 👇

import { gogocodeRemovelog } from "vite-plugin-removelog";

const code = `
const foo = 1
console.log("foo")
`;
const dest = gogocodeRemovelog(code);

console.log(dest); // const foo = 1
<br /> <br />

组织 🦔

欢迎关注 帝莎编程

<br /> <br /> <br />

License

Made with markthree

Published under MIT License.

<br />