babel-plugin-transform-remove-props
v0.0.1
Published
Babel transform to remove selected properties.
Maintainers
Readme
babel-remove-props
A Babel transform removing any object properties you tell it to.
Properties in object literals {prop: value} and assignments obj.prop = value
are removed. Terms with property access in expressions obj.prop are converted
to undefined.
The transformation can be used for advanced minification, to remove some properties you know won't be used, but that are not automatically detectable as such.
Example
The following code:
a.removeMe = 0;
a.removeMeToo = i++;
{removeMe: 1, doNotRemoveMe: 2};is transformed to:
i++;
{doNotRemoveMe: 2};Try running Babel with DEBUG=remove-props to see what is being removed.
Usage
Add 'transform-remove-props' to .babelrc with a regular expression
matching the properties to remove:
{
plugins: [
['transform-remove-props', {regex: /^(removeMe|removeMeToo)$/}]
]
}The transform is best used after transpiling and bundling, but before lossless minification (such as Uglify).
Options
regex (required)
A regular expression that specifies properties to remove.
pureMembers and pureCallees
Properties of member and call expressions:
a.b.removeMe = 1;
a.b().removeMe = 2;cannot be removed as a member access or a function may have side-effects.
To get rid of the whole expression (rather than just its right-hand side), pass
a pureMembers, respectively pureCallees, option – in the above case
any regular expression matching a.b.
Pure callees is set to pureFuncsWithUnusualExceptionRegex from
side-effects-safe by default.
Installation
npm install babel-cli babel-plugin-transform-remove-props