2016-06-09 10 views
0

Also beginne ich Gulp zu verwenden, um meinen Workflow zu automatisieren, ich habe damit herumgespielt, aber ich habe die Aufgabe ausgeführt, mehrere Dateien zu verketten und zu händeln ist innen in einem IIFE fehlt. Zur Verkettung verwenden Sie gulp-usref.Fehlender Code nach dem Uglifying von JS IIFE mit gulp-uglify

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

Als ich die Aufgabe, die Datei ausgeführt ist verketteten und uglified aber variableA, variableB, variableC and myFunction nicht angezeigt werden, nur die console.log ist.

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

Ich vermisse einen Schritt? oder wie kann ich das lösen?

+1

passiert es auch mit normalem Code? afaik uglifiers entfernen nicht verwendete Funktionen und Variablen – pzmarzly

+0

@pzmarzly oh ich wusste das nicht, anscheinend ist es das, dass Variablen oder Funktionen, die nicht verwendet werden, entfernt werden. Vielen Dank! –

+0

Ich habe es als Antwort gepostet, damit es als richtig ausgewählt werden konnte – pzmarzly

Antwort

1

Uglifiers, einschließlich gulp-uglify, entfernen Sie nicht verwendeten Code.