2015-03-12 16 views
13

Używam Gulp i pliki główne-bower do pakowania zależności mojej bower.Sterowanie plikami źródłowymi

Muszę upewnić się, że jQuery jest dołączony przed AngularJS, ale ponieważ pakiet kątowy Angular w rzeczywistości nie zależy od jQuery, jest zawarty po.

Czy istnieje sposób na przeniesienie jQuery na górę listy źródłowej lub przesłonięcie zależności Angulara, więc wymaga jQuery?

Próbowałem za pomocą wtyczki łyk-Aby to zrobić, ale bałagan oryginalną kolejność pozostałych plików:

gulp.task('bower', function() { 

    var sources = gulp.src(mainBowerFiles(['**/*.js', '!**/*.min.js'])); // don't include min files 

    return sources 
    // force jquery to be first 
    .pipe(plugins.order([ 
     'jquery.js', 
     '*' 
    ])) 
    .pipe(plugins.sourcemaps.init()) 
     .pipe(plugins.concat('libs.min.js')) 
     .pipe(plugins.uglify()) 
    .pipe(plugins.sourcemaps.write('./')) 
    .pipe(gulp.dest(config.output)) 
    .pipe(plugins.notify({ message: 'Bower task complete' })); 
}); 
+0

Dlaczego trzeba jQuery ładować przed kątowe, jeśli kątowe nie zależy od niego? – yangmillstheory

+1

@ yangmillstheory Angular może używać jQuery, jeśli jest załadowany, w przeciwnym razie zastąpi własną wersję. – dirkjot

Odpowiedz

3

Nie użyłem main-bower-files, ale jedną sztuczką, o której mogę pomyśleć, jest dołączenie pliku jquery bezpośrednio załaduj go do głównej tablicy plików altanowych, np.

var glob = ['/path/to/jquery.js'].concat(mainBowerFiles(['**/*.js', '!/path/to/jquery.js'])); 
var sources = gulp.src(glob);