unplugin-inline-enum
![jsr](https://jsr.io/badges/@unplugin/inline-enum)
![Unit Test](https://github.com/unplugin/unplugin-inline-enum/actions/workflows/unit-test.yml/badge.svg)
Inline enum values to optimize bundle size.
Features
- 🚀 Inline enum values to reduce the size of the bundle.
- 🧹 Simplify generated enums in JavaScript.
export enum TestEnum {
a = 1,
b = 'foo',
}
console.log(TestEnum.a, TestEnum.b)
export let TestEnum
;(function (TestEnum) {
TestEnum[(TestEnum.a = 1)] = 'a'
TestEnum.b = 'foo'
})(TestEnum || (TestEnum = {}))
console.log(TestEnum.a, TestEnum.b)
const TestEnum = {
a: 1,
'1': 'a',
b: 'foo',
}
console.log(1, 'foo')
Installation
npm i -D unplugin-inline-enum
npx jsr add -D @unplugin/inline-enum
Vite
import InlineEnum from 'unplugin-inline-enum/vite'
export default defineConfig({
plugins: [InlineEnum()],
})
Rollup
import InlineEnum from 'unplugin-inline-enum/rollup'
export default {
plugins: [InlineEnum()],
}
esbuild
import { build } from 'esbuild'
build({
plugins: [require('unplugin-inline-enum/esbuild')()],
})
Webpack
module.exports = {
plugins: [require('unplugin-inline-enum/webpack')()],
}
Options
Refer to docs.
Credits
Thanks to @xiaoxiangmoe and
@yangmingshan for their contributions in the
PR.
License
MIT License © 2024-PRESENT 三咲智子