源文件的控制顺序

Control order of source files

我正在使用 Gulp 和 main-bower-files 来捆绑我的 bower 依赖项。

我需要确保 jQuery 包含在 AngularJS 之前,但是由于 Angular bower 包实际上并不依赖于 jQuery,它被包含在之后。

有没有办法将 jQuery 推到源列表的顶部或覆盖 Angular 的依赖关系以便它确实需要 jQuery?

我尝试使用 gulp-order 插件来执行此操作,但它弄乱了剩余文件的原始顺序:

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

您可以覆盖项目中的角度依赖项bower.json:

https://github.com/ck86/main-bower-files#overrides-options

{
    ...

    "overrides": {
        "angular": {
            "dependencies": {
                "jquery": "~1.8"
            }
        }
    }
}

我没用过 main-bower-files 但我能想到的一个技巧是直接包含 jquery 文件,不要将它加载到主 bower 文件数组中,例如

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