terser没有缩小功能名称

问题描述 投票:1回答:1

所以我正在使用gulp并尝试了几种组合,但似乎没有什么可以缩小函数名称这里是一个例子:

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

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

Update

这个配置也帮我实现了我想要的东西:

   .pipe(gTerser({
        keep_fnames: false,
        mangle: {
            properties: {
                keep_quoted: true
            },
            keep_fnames: false,
        }
    }))
gulp terser
1个回答
1
投票

我用你的terser任务做了一个小测试。使用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);
© www.soinside.com 2019 - 2024. All rights reserved.