我使用 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。那么,我的问题是如何实现正确的订单?
答案 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'
]
}
}
希望有所帮助。