我确信有办法做到这一点,但我找不到它。我想要的是将多个文件传递到browserify并输出多个文件 - 这对于网站有多个SPA的情况很有用,每个SPA都有自己的需求。
说我有app1.js
,app2.js
等,每个加载在不同的页面中,并且有独立的require('..')
语句。我正在寻找一个类似这样的任务:
gulp.task('browserify', function() {
return
gulp.src('src/**/*.js')
.pipe(browserify) //
.pipe(gulp.dest('dist'));
});
知道什么是实现这个目标的简单方法吗?感谢。
答案 0 :(得分:2)
本周早些时候我偶然发现了这个问题。 "创建多个捆绑包的问题"。这应该有效:
var gulp = require('gulp'),
source = require('vinyl-source-stream'),
browserify = require('browserify'),
es = require('event-stream');
gulp.task('default', function() {
// Your main files
var files = [
'./app/main-a.js',
'./app/main-b.js'
];
// Create a stream array
var tasks = files.map(function(entry) {
return browserify({ entries: [entry] })
.bundle()
.pipe(source(entry))
.pipe(gulp.dest('./dist'));
});
return es.merge.apply(null, tasks);
});
请不要使用gulp-browserify
插件,因为它已被列入黑名单。请改用browserify
本身。
与Globs相同:
gulp.task('withglob', function() {
return glob('./app/main-**.js', function(err, files) {
var tasks = files.map(function(entry) {
return browserify({ entries: [entry] })
.bundle()
.pipe(source(entry))
.pipe(rename({
extname: '.bundle.js'
}))
.pipe(gulp.dest('./dist'));
});
return es.merge.apply(null, tasks);
})
});
顺便说一句:That's the reason