Skip to content

Latest commit

 

History

History
86 lines (60 loc) · 1.86 KB

README.md

File metadata and controls

86 lines (60 loc) · 1.86 KB

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