So I'm using terser with gulp and have tried several combinations but nothing seems to minify the function names here is an example:
function minify() {
return gulp.src('js/**/*.js')
.pipe(gTerser({
keep_fnames: false,
mangle: {
keep_fnames: false,
}
}))
.pipe(gulp.dest(`foo/js/`))
}
this config also helped me achieve what I wanted:
.pipe(gTerser({
keep_fnames: false,
mangle: {
properties: {
keep_quoted: true
},
keep_fnames: false,
}
}))
I have made a small test with your terser task. With the mangle (toplevel) option i get the desired result.
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)
Example:
const minifyMyFunctionName = (num) => {
console.log(num * 2);
};
minifyMyFunctionName(2);
Terser result:
const o=o=>{console.log(2*o)};o(2);