开始使用
Why this exists?
Sometimes, we need to get the name of the classes we get from import.meta.glob, but after the code is compiled and minified, the names of the classes will be minified to less characters.
The plugin adds a static property to all classes with the original name, so that we can get the original name of the class in the compiled code.
Installation
npm i -D unplugin-original-class-name
# or use pnpm
pnpm i -D @graphifif/unplugin-original-class-nameimport OriginalClassName from "unplugin-original-class-name/vite";
export default defineConfig({
plugins: [
OriginalClassName({
/* options */
}),
],
});import OriginalClassName from "unplugin-original-class-name/rollup";
export default {
plugins: [
OriginalClassName({
/* options */
}),
// other plugins
],
};module.exports = {
/* ... */
plugins: [
require("unplugin-original-class-name/webpack").default({
/* options */
}),
],
};module.exports = {
/* ... */
plugins: [
require("unplugin-original-class-name/rspack").default({
/* options */
}),
],
};export default defineNuxtConfig({
modules: [
[
"unplugin-original-class-name/nuxt",
{
/* options */
},
],
],
});module.exports = {
/* ... */
plugins: [
require("unplugin-original-class-name/webpack").default({
/* options */
}),
],
};You can also rename the Vue configuration file to vue.config.mjs and use static import syntax (you should use latest @vue/cli-service ^5.0.8):
import OriginalClassName from "unplugin-original-class-name/webpack";
export default {
configureWebpack: {
plugins: [
OriginalClassName({
/* options */
}),
],
},
};Vite:
import OriginalClassName from "unplugin-original-class-name/vite";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [
OriginalClassName({
/* options */
}),
],
});Webpack:
const OriginalClassNamePlugin = require("unplugin-original-class-name/webpack").default;
module.exports = {
build: {
chainWebpack(chain) {
chain.plugin("unplugin-original-class-name").use(
OriginalClassNamePlugin({
/* options */
}),
);
},
},
};import { build } from "esbuild";
import OriginalClassName from "unplugin-original-class-name/esbuild";
build({
/* ... */
plugins: [
OriginalClassName({
/* options */
}),
],
});import OriginalClassName from "unplugin-original-class-name/astro";
export default defineConfig({
integrations: [
OriginalClassName({
/* options */
}),
],
});Configuration
The only config is staticMethodName: string
TypeScript support
{
"compilerOptions": {
// ...
"types": ["@graphif/unplugin-original-class/client"]
}
// ...
}Or use a declaration comment:
/// <reference types="@graphif/unplugin-original-class/client" />