terser 不缩小函数名称

Com*_*ode 5 gulp terser

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

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

        .pipe(gTerser({
            keep_fnames: false,
            mangle: {
                keep_fnames: false,
            }
        }))
        .pipe(gulp.dest(`foo/js/`))
}
Run Code Online (Sandbox Code Playgroud)

更新

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

   .pipe(gTerser({
        keep_fnames: false,
        mangle: {
            properties: {
                keep_quoted: true
            },
            keep_fnames: false,
        }
    }))
Run Code Online (Sandbox Code Playgroud)

d-h*_*h-e 8

我对你的简洁任务做了一个小测试。使用 mangle (顶级)选项我得到了想要的结果。

mangle option 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)
Run Code Online (Sandbox Code Playgroud)

例子:

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

minifyMyFunctionName(2);
Run Code Online (Sandbox Code Playgroud)

更简洁的结果:

const o=o=>{console.log(2*o)};o(2);
Run Code Online (Sandbox Code Playgroud)