如何设置与gulp-bundle-assets连接的文件的正确顺序

时间:2015-08-04 15:30:38

标签: gulp

我使用 gulp-bundle-assets 来处理我的静态资源。我的 bundle.config.js

中有下一个配置
module.exports = {
bundle: {
    ...
    vendor: {
        scripts: [
            './bower_components/angular/angular.js',
            './bower_components/angular-aria/angular-aria.js',
            './bower_components/angular-material/angular-material.js',
            './bower_components/angular-translate/angular-translate.js',
            './bower_components/angular-animate/angular-animate.js'
        ]
        options: {
            uglify: false,
            order: {
                scripts: [
                    'angular.js',
                    '*.js'
                ]
            }
        }
    }
},
...
};

因此,要连接的第一个脚本必须是angular.js,但“options.order”不能正常工作 - 最终脚本中的第一个连接文件是angular-animate.js。那么,我的问题是如何实现正确的订单?

1 个答案:

答案 0 :(得分:0)

我是gulp-bundle-assets的作者。问题在于你的glob语法。在幕后,gulp-bundle-assets使用gulp-order,它本身使用minimatch。每个文档都提供了大量示例,但对于您的特定用例,此迷你匹配示例显示了您的问题:

var minimatch = require("minimatch")
minimatch("./bower_components/angular/angular.js", "angular.js") // false
minimatch("./bower_components/angular/angular.js", "./**/angular.js") // true

不幸的是,开头的./正在抛弃迷你匹配。以下内容应解决您的问题:

options: {
  order: {
    scripts: [
      './**/angular.js',
      './**/*.js'
    ]
  }
}

希望有所帮助。