2016-02-25 136 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 –