13

我有以下任务:

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

并且所有目录都设置正确。虽然当我运行任务时,我没有任何迹象表明丑化是否有效。串联效果很好。我错过了什么吗?

4

3 回答 3

16

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

把你的代码放在一个函数中,你会看到一些修改。

function go() {
  var testOneOutput = 'function one';
  console.log(testOneOutput);
}
于 2015-05-29T01:27:18.557 回答
12

{mangle: {toplevel: true}}如果您也想破坏您的顶级功能,您可以提供选项。

uglify({mangle: {toplevel: true}})
于 2017-09-20T21:05:48.430 回答
1

执行第uglify一个。然后concat是丑陋的文件。

gulp.task('scripts', function () {
  gulp.src('./src/scripts/*.js')
    .pipe(uglify())
    .pipe(concat('main.js'))
    .pipe(gulp.dest('./dist'));
});
于 2015-05-28T18:21:24.187 回答