Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: 2 days ago
JSON representation

a css class mangler/obfuscator for nuxt

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
```