精简无用代码(Minify dead code elimination)

尽可能内联绑定。试图找出不可达的表达式和无用代码,并作为结果返回。

示例

输入

function foo() {var x = 1;}
function bar() { var x = f(); }
function baz() {
  var x = 1;
  console.log(x);
  function unused() {
    return 5;
  }
}

输出

function foo() {}
function bar() { f(); }
function baz() {
  console.log(1);
}

安装

npm install babel-plugin-minify-dead-code-elimination

使用

.babelrc

// without options
{
  "plugins": ["minify-dead-code-elimination"]
}

// with options
{
  "plugins": ["minify-dead-code-elimination", { "optimizeRawSize": true }]
}

通过 CLI

babel --plugins minify-dead-code-elimination script.js

通过 Node API

require("babel-core").transform("code", {
  plugins: ["minify-dead-code-elimination"]
});

可选项

  • keepFnName - 防止插件删除函数名。适用于依赖于 fn.name 的代码
  • keepFnArgs - 防止插件删除函数参数。适用于依赖于 fn.length 的代码
  • keepClassName - 防止插件删除类名。 适用于依赖于 cls.name 的代码
  • tdz - TDZ的配置 (Temporal Dead Zone)(暂时性死区)