2016-02-25 82 views
2

Java工程師在這裏,對於Javascript世界來說是新手,所以如果我沒有提供足夠的/正確的信息,請致歉!使用gulp和main-bower-files命令輸出(gulp命令不起作用)

我有一個gulp構建腳本並使用bower來管理我的JS前端應用程序的依賴關係。我正在努力讓按照正確的順序連接(bower controlled)供應商的javascript庫,以便jQuery和angular第一。

如果他們不是第一次然後我得到角是未定義jQuery是未定義當我加載我的應用程序,因爲它們對應的JavaScript代碼埋在串聯庫某處進一步下降。

我已經嘗試使用gulp-order下令從產生main-bower-files調用的輸出,但它似乎沒有任何效果。

我一飲而盡任務如下:

gulp.task('lib', function() { 
    var files = 
     gulp.src(mainBowerFiles({ 
     paths: { 
      bowerrc: './.bowerrc', 
      bowerJson: './bower.json' 
     }, env: 'lib'})) 
     .pipe(order(["vendor/bower/jquery/**/*.js", "vendor/bower/angular/**/*.js", "vendor/bower/**/*.js" ])) 

    return processJsFiles('lib', files); 
}); 

processJsFiles做的醜化工作,看起來很像:

 .pipe(uglify(name + '.js', { 
      outSourceMap: true, 
      screwIe8: true, 
      compress: { 
       hoist_funs: false, 
       if_return: false 
      } 
     })) 
     .pipe(gulp.dest(build_dir)) 
     .pipe(gzip()) 
     .pipe(gulp.dest(build_dir)); 

任何線索或更好的方法,我應該這樣做呢?

回答

5

通過我想通了,你需要指定的其中階插件需要從開始的基地,例如文檔多洞穴探險後:

gulp.task('lib', function() { 
    var files = 
     gulp.src(mainBowerFiles({ 
     paths: { 
      bowerrc: './.bowerrc', 
      bowerJson: './bower.json' 
     }, env: 'lib'})) 
     .pipe(order([ 
      "vendor/bower/jquery/**/*.js", 
      "vendor/bower/angular/**/*.js", 
      "vendor/bower/**/*.js" 
      ], { base: './' }) 
    ); 

    return processJsFiles('lib', files); 
}); 
+0

您好,我需要指定的順序爲好,但我不太瞭解你的例子...你可以在這裏粘貼鏈接到文檔嗎? 謝謝 – Nick

+0

文檔鏈接從這裏:https://www.npmjs.com/package/gulp-order –