首页 > 解决方案 > babeljs 的 createClass 助手使 mangle 不起作用

问题描述

我正在使用 babel 作为转译器,我想用 uglifyjs 破坏一些方法。

这是一个演示:

class A {
    methodA() {}
}

以及 babel 的输出:

var A = function () {
  function A() {
    _classCallCheck(this, A);
  }

  _createClass(A, [{
    key: "methodA",
    value: function methodA() {}
  }]);

  return A;
}();

但是,当我尝试破坏时methodA,它不起作用。因为methodA在输出中是一个字符串。

但是打字稿输出的相同代码有效,它不是字符串:

var A = /** @class */ (function () {
    function A() {
    }
    A.prototype.methodA = function () { };
    return A;
}());

所以我的问题是:使用 babeljs 时如何修改方法名称?

标签: babeljsbabel-loader

解决方案


好的,我找到了答案。

只需使用loose模式:

[ ['@babel/preset-env', { loose: true }] ]

结果会更接近TS。


推荐阅读