2

因此,我将 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,
        }
    }))
4

1 回答 1

5

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

mangle option toplevel : toplevel (default 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);
于 2019-03-23T08:35:50.840 回答