https://github.com/jacobbogers/rollup-plugin-jsx-remove-attributes
rollup & vite plugin to remove jsx attributes
https://github.com/jacobbogers/rollup-plugin-jsx-remove-attributes
Last synced: 10 days ago
JSON representation
rollup & vite plugin to remove jsx attributes
- Host: GitHub
- URL: https://github.com/jacobbogers/rollup-plugin-jsx-remove-attributes
- Owner: jacobbogers
- License: mit
- Created: 2023-03-18T11:29:21.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-05T19:53:59.000Z (about 1 year ago)
- Last Synced: 2024-04-14T07:19:31.009Z (about 1 year ago)
- Language: TypeScript
- Size: 57.6 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
- fucking-awesome-vite - vite-jsx-remove-attributes - Remove the `data-testid` (configurable) from production builds. (Get Started / Templates)
- awesome-vite - vite-jsx-remove-attributes - Remove the `data-testid` (configurable) from production builds. (Get Started / Templates)
README
# rollup(& vite)-plugin-jsx-remove-attributes
rollup & vite plugin to remove jsx attributes
This plugin can be used in vite or rollup.
The initial motivation was to remove `data-testid` attributes from jsx (react, etc) components.
It can be generally used to remove any number of attributes.
The plugin only runs when `NODE_ENV` matches the values of the `environments` option (default is `['production']`).
## Installation
```bash
npm i -D rollup-plugin-jsx-remove-attributes
```## Usage with Vite
Example:
```typescript
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';import removeTestIdAttribute from 'rollup-plugin-jsx-remove-attributes';
export default defineConfig({
build: { sourcemap: true },
plugins: [
react(),
removeTestIdAttribute({
include: [/\.[tj]sx$/], //default
exclude: ['**/node_modules/**'], // default
attributes: ['data-testid'], // remove test attributes from jsx
environments: ['production', 'pre-prod', 'prod', 'q&a'], // default = ["production"]
debug: true, // show more logging of the internal workings of this plugin, for troubleshooting configs, default false
usage: 'vite' // Must specify for vite use, default usage is rollup
})
// other plugins
]
});
```## Usage with Rollup
Example:
```typescript
import { rollup } from 'rollup';
import removeTestIdAttribute from 'rollup-plugin-jsx-remove-attributes';// see below for details on these options
const inputOptions = {
...
plugins:[
removeTestIdAttribute({
include: [/\.[tj]sx$/], //default
exclude: ['**/node_modules/**'], // default
attributes: ['data-testid'], // remove test attributes from jsx
environments: ['production', 'pre-prod', 'prod', 'q&a'], // default = ["production"]
debug: true, // show more logging of the internal workings of this plugin, for troubleshooting configs, default false
usage: 'rollup' // when configuring for rollup "usage" can be omitted, shown for clarity only
}),
]
};const outputOptions = {...};
const bundle = await rollup.build(inputOptions);
await rollup.write(outputOptions);
```## Options Object
- `usage`: possible values are `vite` or `rollup`, default behavior is for rollup.
- `include`: will allow anything that matches the array of glob/regexp pattern, default`[/\.[tj]sx$/]`
- `exclude`: will exclude anything matching the array of glob/regexp patterns, default `['**/node_modules/**']`
- `attributes`: array of jsx attributes to be stripped if found, example `data-testid`
- `environments`: array of strings representing values of NODE_ENV for wich this plugin will run.
- `debug`: show more logging of internal workings of the plugin, default false