terser 不缩小函数名称

terser not minifying function names

所以我将 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,
        }
    }))

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

mangle option toplevel: toplevel (default false) -- Pass true to mangle names declared in the top level scope.

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);