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:
aremoveMe = 0;aremoveMeToo = 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: /^$/
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:
abremoveMe = 1;aremoveMe = 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