Inlines bindings when possible. Tries to evaluate expressions and prunes unreachable as a result
In
function foo() {var x = 1;} function bar() { var x = f(); } function baz() { var x = 1; console.log(x); function unused() { return 5; } }
Out
function foo() {} function bar() { f(); } function baz() { console.log(1); }
npm install babel-plugin-minify-dead-code-elimination
.babelrc
(Recommended).babelrc
// without options { "plugins": ["minify-dead-code-elimination"] } // with options { "plugins": ["minify-dead-code-elimination", { "optimizeRawSize": true }] }
babel --plugins minify-dead-code-elimination script.js
require("babel-core").transform("code", { plugins: ["minify-dead-code-elimination"] });
keepFnName
- prevent plugin from removing function name. Useful for code depending on fn.name
keepFnArgs
- prevent plugin from removing function args. Useful for code depending on fn.length
keepClassName
- prevent plugin from removing class name. Useful for code depending on cls.name
tdz
- Account for TDZ (Temporal Dead Zone)
© 2018 Sebastian McKenzie
Licensed under the MIT License.
http://babeljs.io/docs/plugins/minify-dead-code-elimination/