【问题标题】:Why isn't gulp-uglify mangling my variables names?为什么 gulp-uglify 不修改我的变量名称?
【发布时间】:2015-05-28 18:19:28
【问题描述】:

我有以下任务:

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

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

【问题讨论】:

    标签: javascript gulp gulp-uglify


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      如果你也想修改你的顶级函数,你可以给{mangle: {toplevel: true}}选项。

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

      【讨论】:

        【解决方案3】:

        首先执行uglify。然后concat丑化文件。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-02-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多