使用gulp和main-bower-files对输出进行排序(gulp-order不起作用)

Mar*_*urg 2 javascript jquery angularjs bower gulp

这里的Java工程师,Javascript世界的新手,如果我没有提供足够/正确的信息,请道歉!

我有一个gulp构建脚本,并使用bower来管理我的JS前端应用程序的依赖项.我正在努力让(凉亭控制的)供应商javascript库以正确的顺序连接起来,以便jQuery和angular首先出现.

如果它们不是第一个,那么我得到角度是未定义的,或者当我加载我的应用程序时jQuery是未定义的,因为它们相应的javascript代码被隐藏在连接库中的某个地方.

我试图用来gulp-order命令结果main-bower-files调用的输出,但似乎没有效果.

我的gulp任务如下:

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);
});
Run Code Online (Sandbox Code Playgroud)

processJsFiles执行uglify工作,看起来非常像:

        .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));
Run Code Online (Sandbox Code Playgroud)

我应该做的任何线索或更好的方法吗?

Mar*_*urg 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);
});
Run Code Online (Sandbox Code Playgroud)