терсер не минимизирует имена функций - PullRequest
1 голос
/ 22 марта 2019

Так что я использую terser с gulp и пробовал несколько комбинаций, но, кажется, ничто не минимизирует имена функций, вот пример:

function minify() {
    return gulp.src('js/**/*.js')

        .pipe(gTerser({
            keep_fnames: false,
            mangle: {
                keep_fnames: false,
            }
        }))
        .pipe(gulp.dest(`foo/js/`))
}

Обновление

эта конфигурация также помогла мнедобиться того, что я хотел:

   .pipe(gTerser({
        keep_fnames: false,
        mangle: {
            properties: {
                keep_quoted: true
            },
            keep_fnames: false,
        }
    }))

1 Ответ

1 голос
/ 23 марта 2019

Я сделал небольшой тест с твоим заданием. С опцией mangle (toplevel) я получаю желаемый результат.

опция mangle toplevel : toplevel (по умолчанию false) - Передать true именам mangle, объявленным в области верхнего уровня.

const gulp = require('gulp');
const gTerser = require('gulp-terser');

function minify() {
  return gulp.src('./js/**/*.js')
    .pipe(gTerser({
      ecma: 6,
      keep_fnames: false,
      mangle: {
        toplevel: true,
      },
    }))
    .pipe(gulp.dest('./foo/js/'));
}

gulp.task('default', minify)

Пример:

const minifyMyFunctionName = (num) => {
  console.log(num * 2);
};

minifyMyFunctionName(2);

Более короткий результат:

const o=o=>{console.log(2*o)};o(2);
...