babel-plugin-react-remove-properties
Version:
111 lines (88 loc) • 2.63 kB
Markdown
> Babel plugin for removing React properties.
[](https://www.npmjs.com/package/babel-plugin-react-remove-properties)
[](https://www.npmjs.com/package/babel-plugin-react-remove-properties)
[](https://travis-ci.org/oliviertassinari/babel-plugin-react-remove-properties)
[](https://david-dm.org/oliviertassinari/babel-plugin-react-remove-properties)
[](https://david-dm.org/oliviertassinari/babel-plugin-react-remove-properties#info=devDependencies&view=list)
```sh
npm install --save-dev babel-plugin-react-remove-properties
```
This is useful when using selectors like data-test to run selenium test. Those properties are useless when running the code in production. You can **save bandwidth** by removing them.
**In**
```js
class Foo extends React.Component {
render() {
return (
<div className="bar" data-test="thisIsASelectorForSelenium">
Hello Wold!
</div>
);
}
}
```
**Out**
```js
class Foo extends React.Component {
render() {
return (
<div className="bar">
Hello Wold!
</div>
);
}
}
```
**.babelrc**
without options:
```json
{
"env": {
"production": {
"plugins": [
"react-remove-properties"
]
}
}
}
```
with options. We accepts an array of property names that can be either strings or regular expressions:
```json
{
"env": {
"production": {
"plugins": [
["react-remove-properties", {"properties": ["data-test", "data-foo", /my-suffix-expression$/]}]
]
}
}
}
```
```sh
babel --plugins react-remove-properties script.js
```
without options:
```js
require('babel-core').transform('code', {
plugins: [
'react-remove-properties',
],
});
```
with options:
```js
require('babel-core').transform('code', {
plugins: [
['react-remove-properties', {properties: ['data-test', 'data-foo', /my-suffix-expression$/]}],
],
});
```
MIT