main-bower-files没能抓住backbone-amd和underscore-amd,有什么想法吗?我怎么才能修复它?
gulpfile.js
var mainBowerFiles = require('main-bower-files');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var filter = require('gulp-filter');
gulp.task('js', function() {
var jsFiles = ['app/scripts/*'];
gulp.src(mainBowerFiles().concat(jsFiles))
.pipe(filter('*.js'))
.pipe(concat('main.js'))
.pipe(uglify())
.pipe(gulp.dest(dest + 'js'));
});bower.json,
{
"name": "requirejs",
"version": "1.0.0",
"dependencies": {
"requirejs": "latest",
"jquery": "latest",
"backbone-amd": "latest",
"underscore-amd": "latest",
"ember": "latest",
"ember-data": "latest"
},
"authors": [
"xxx"
],
"license": "MIT",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"app/scripts/vendor",
"test",
"tests"
]
}main.js,
require.config({
paths: {
'jquery': 'vendor/jquery/dist/jquery',
'underscore': 'vendor/underscore-amd/underscore',
'backbone': 'vendor/backbone-amd/backbone',
}
});
require(['views/app'], function(AppView) {
new AppView;
console.log($(".div").length);
});它只能压缩jquery、ember和ember-data into one main.js file,接受 backbone-amd和underscore-amd
我用其他方法测试过,
gulp.task('bower', function() {
return gulp.src(mainBowerFiles(), {
base: 'app/scripts/vendor/'
})
.pipe(gulp.dest('public/lib'));
});或,
// grab libraries files from bower_components, minify and push in /public
gulp.task('libs', function() {
var jsFilter = filter('*.js');
return gulp.src(mainBowerFiles())
// grab vendor js files from bower_components, minify and push in /public
.pipe(jsFilter)
.pipe(gulp.dest(dest + '/js/vendor'))
.pipe(uglify())
.pipe(rename({
suffix: ".min"
}))
.pipe(gulp.dest(dest + '/js/vendor'))
.pipe(jsFilter.restore());
});同样的结果--它忽略了backbone-amd和underscore-amd。它是bug在main-bower-files中吗?
发布于 2014-10-22 19:48:28
不是虫子。backbone-amd和underscore-amd没有bower.json,因此没有能够指定主文件的main属性。这是安博的bower.json作比较。
“这将读取您的bower.json,迭代您的依赖项,并返回在包bower.json的主属性中定义的文件数组。”
https://github.com/ck86/main-bower-files#usage
您可以将overrides属性添加到 bower.json中,以便自己指定正确的文件:
"overrides": {
"backbone-amd": {
"main": "backbone.js"
},
"underscore-amd": {
"main": "underscore.js"
}
}https://stackoverflow.com/questions/26515429
复制相似问题