https://github.com/jd1378/nuxt-obfuscator
a css class mangler/obfuscator for nuxt
https://github.com/jd1378/nuxt-obfuscator
class css mangler nuxt nuxt-module nuxtjs obfuscator vue
Last synced: 9 months ago
JSON representation
a css class mangler/obfuscator for nuxt
- Host: GitHub
- URL: https://github.com/jd1378/nuxt-obfuscator
- Owner: jd1378
- License: mit
- Created: 2023-12-08T07:13:27.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-16T04:04:22.000Z (over 2 years ago)
- Last Synced: 2025-01-31T20:22:42.797Z (over 1 year ago)
- Topics: class, css, mangler, nuxt, nuxt-module, nuxtjs, obfuscator, vue
- Language: TypeScript
- Homepage:
- Size: 172 KB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Nuxt Obfuscator
a nuxt module to easily obfuscate/mangle your css class names when building the project
- [✨ Release Notes](/CHANGELOG.md)
## Quick Setup
1. Add `nuxt-obfuscator` dependency to your project
```bash
# Using pnpm
pnpm add -D nuxt-obfuscator
# Using yarn
yarn add --dev nuxt-obfuscator
# Using npm
npm install --save-dev nuxt-obfuscator
```
2. Add `nuxt-obfuscator` to the end of `modules` section of `nuxt.config.ts`
```js
export default defineNuxtConfig({
modules: [
// your other modules
'nuxt-obfuscator'
],
obfuscator: {
// default config:
mapFile: 'obfuscation.map.json', // where to store class name mappings
nameLength: 7, // how many characters each class name should be
defaultExtensions: ['.html', '.vue', '.jsx', '.tsx', '.ts', '.js'], // which files to check for class names
exclude: [], // if path includes these keywords it will be ignored
excludeClassNames: [/^nuxt-.*$/, /^vue-.*$/, /^.*?(-enter.*|-leave.*)$/], // which class names to skip obfuscation and postcss transform. supports regex.
dev: false, // if true, class names will be obfuscated in development
}
})
```
### Optional Steps (Recommended)
3. Build the project once using `yarn generate` or `yarn build` to generate the obfuscation map and add it to git to keep the class names consistent across builds
## Development
```bash
# Install dependencies
npm install
# Generate type stubs
npm run dev:prepare
# Develop with the playground
npm run dev
# Build the playground
npm run dev:build
# Run ESLint
npm run lint
# Run Vitest
npm run test
npm run test:watch
# Release new version
npm run release
```