为什么没有gulp-uglify修改我的变量名称?

时间:2015-05-28 18:19:29

标签: javascript gulp gulp-uglify

我有以下任务:

var uglify = require('gulp-uglify');

gulp.task('scripts', function () {
  gulp.src('./src/scripts/*.js')
    .pipe(concat('main.js'))
    .pipe(uglify())
    .pipe(gulp.dest('./dist'));
});

以下2个javascript文件,test1.js:

var testOneOutput = 'function one';
console.log(testOneOutput);

和test2.js

var testTwoOutput = 'function two';
console.log(testTwoOutput);

所有目录都设置正确。虽然当我执行任务时,我没有迹象表明是否有丑陋的工作。连接工作很好。我错过了什么吗?

3 个答案:

答案 0 :(得分:14)

在您的脚本中testOneOutputtestTwoOutput是全局变量,默认情况下gulp-uglify只会破坏本地变量。

将代码放入函数中,您会看到一些错误。

function go() {
  var testOneOutput = 'function one';
  console.log(testOneOutput);
}

答案 1 :(得分:8)

如果您想要破坏顶级功能,也可以选择{mangle: {toplevel: true}}

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

答案 2 :(得分:1)

首先执行uglify。然后concat uglified files。

gulp.task('scripts', function () {
  gulp.src('./src/scripts/*.js')
    .pipe(uglify())
    .pipe(concat('main.js'))
    .pipe(gulp.dest('./dist'));
});