2016-06-09 39 views
0

因此,我開始使用Gulp來自動化我的工作流程,當時我正在玩弄它,但當我執行任務來連接和uglify多個文件時遇到了一些代碼是在一個IIFE裏面失蹤。連接使用gulp-usref使用gulp-uglify uglifying JS IIFE後遺失的代碼

// 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')) 
    }) 

當我運行任務的文件是級聯和變醜,但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

這是否也發生在正常的代碼? afaik uglifiers刪除未使用的函數和變量 – pzmarzly

+0

@pzmarzly哦,我不知道,顯然是這樣的,未使用的變量或函數被刪除。謝謝! –

+0

我已經發布它作爲答案,所以它可以被選擇爲正確的 – pzmarzly

回答

1

Uglifiers,包括gulp-uglify,刪除未使用的代碼。