Задать вопрос
@m5xim

Как в webpack terser отключить генерацию доп. кода?

Есть проект в котором будут использоваться веб-компоненты. Для минификации текущего js кода используется Webpack Terser плагин (точнее laravel mix, но он использует Terser), однако данный подход генерирует много избыточного кода (пример ниже). В случае с веб-компонентами каждый файл будет минифицироваться отдельно, и такое кол-во избыточного кода не приемлимо. Есть ли способ отключить это, т.е. оставить только удаление пробелов, замену имен на буквы, но без этих всех оболочек? Поддержка старых браузеров не интересует.
Пробовал указать более высокую версию в ecma, но это не помогло
Пример избыточного кода

function _classCallCheck(e, t) {
            if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
        }

        function _defineProperties(e, t) {
            for (var r = 0; r < t.length; r++) {
                var n = t[r];
                n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
            }
        }

        function _possibleConstructorReturn(e, t) {
            return !t || "object" !== _typeof(t) && "function" != typeof t ? function _assertThisInitialized(e) {
                if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                return e
            }(e) : t
        }

         function _wrapNativeSuper(e) {
            var t = "function" == typeof Map ? new Map : void 0;
            return (_wrapNativeSuper = function _wrapNativeSuper(e) {
                if (null === e || !function _isNativeFunction(e) { ...



UPD: Это были Babel полифиллы, и я нашел способ избежать их создания :
webpack.mix.js:
// makes babel is dependent on package.json browserslist, so will skip additional polyfills
        laravelMix.babelConfig({
            "presets": [
                [
                    "@babel/preset-env",
                    {}
                ]
            ]
        });

package.json
"browserslist": [
    "last 3 Firefox versions",
    "last 3 Chrome versions",
    "last 3 Safari versions",
    "last 3 FirefoxAndroid versions",
    "last 3 ChromeAndroid versions",
    "last 3 iOS versions"
  ]
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы