微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – uglyfy顶级函数与gulp

将这个简单的gulp示例用于uglification:
gulp.task('scripts',function() {
  // Minify and copy all JavaScript (except vendor scripts)
  return gulp.src(paths.scripts)
    .pipe(uglify())
    .pipe(concat('all.min.js'))
    .pipe(gulp.dest('build/js'));
});

如果您有两个文件

文件f1.js:

function f1(){
  var hello = 1;
  return hello;
}

文件f2.js:

function f2(){
  return f1();
}

all.min.js中任务的结果是:

function f1(){var n=1;return n}
function f2(){return f1()}

如何让uglify破坏这些顶级函数名称,即f1和f2?我试过了:

额外的丑化

return gulp.src(paths.scripts)
    .pipe(uglify())
    .pipe(concat('all.min.js'))
    .pipe(gulp.dest('build/js'))
    .pipe(uglify());

通过mangle选项

return gulp.src(paths.scripts)
    .pipe(uglify({mangle: true}))
    .pipe(concat('all.min.js'))
    .pipe(gulp.dest('build/js'));

通过顶级选项

return gulp.src(paths.scripts)
    .pipe(uglify({toplevel: true}))
    .pipe(concat('all.min.js'))
    .pipe(gulp.dest('build/js'));

但一切都没有效果.

解决方法

.pipe(uglify({mangle: {toplevel: true}}))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐