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 --save-dev.babelrc
// without options
{
  "plugins": ["minify-dead-code-elimination"]
}
// with options
{
  "plugins": ["minify-dead-code-elimination", { "optimizeRawSize": true }]
}babel --plugins minify-dead-code-elimination script.jsrequire("@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)