使用gulp-uglify对JS IIFE进行uglification后缺少代码

时间:2016-06-09 15:34:30

标签: javascript html gulp gulp-uglify

所以我开始使用Gulp来自动化我的工作流程,我正在玩它但是当我执行任务来连接和uglify多个文件时,一些IIFE内部的代码丢失了。要连接使用gulp-usref

  // a-file.js
  (function() {
    'use strict';
    console.log('a-file');
    var variableA = 'variable a';
  })();

  // anotherfile.js
  (function() {
    'use strict';
    console.log('another-file');
    var variableB = 'variable b';
    var myFunction = function() {
      return 'return function value';
    };
  })();

   // main.js
  (function() {
    'use strict';
    console.log('Hello main');
    var variableC = 'variable c';
  })();

  // gulpfile.js
  gulp.task('useref', function() {
     return gulp.src('app/*.jade')
       .pipe(jade({pretty: true}))
       .pipe(useref())
       .pipe(gulpIf('*.js', uglify()))
       .pipe(gulpIf('*.css', cssnano()))
       .pipe(gulp.dest('dist'))
  })

当我运行任务时,文件被连接并且已经被uglified但variableA, variableB, variableC and myFunction没有出现,只有console.log的。

!function(){"use strict";console.log("a-file")}(),function(){"use strict";console.log("another-file")}(),function(){"use strict";console.log("Hello main")}();

我错过了一步?或者我如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

Uglifiers,包括gulp-uglify,删除未使用的代码。