var gulp=require('gulp');
var optimize=require('amd-optimize');
var concat=require('gulp-concat');
gulp.task('script', function(){
gulp.src('script/apps/**/*.js')
.pipe(optimize('city', {
paths: {
'event': 'script/modules/event'
}
}))
.pipe(concat('city.js'))
.pipe(gulp.dest('liuagng'))
});
如果有多个启动文件的话,那应该怎么写配置文件,以上是单个文件打包方式!
gulp读取静态文件时候可以传参数组吧。
多编译任务其实就是把多个pipe聚在一起,在所有pipe做完事情的时候调用回调,利用event-stream可以轻松做到这一点。
var fs = require('fs'),
eventstream = require('event-stream'); // 需要NPM安装event-stream
gulp.task('script', function(){
var pipes = [];
pipes.push(
gulp.src('path/to/your/file/*.js')
// 你的task的中间部分
.pipe(concat('city.js')) // concat成为一个文件
.pipe(gulp.dest('liuagng'))
);
pipes.push(
// 另外一个task
);
pipes.push(
// 第三个task
);
// 等等等等
eventstream.merge(tasks)
.on('end', callback);
});
当然大部分时候我们其实是利用文件夹结构来组织多个类似task的,以browserify为例(amd-optimise也差不多):
var glob = require('glob'); // 需要NPM安装glob
gulp.task('js:compile', function(callback) {
glob("path/to/your/folder", function(err, files) {
var tasks = files.map(function(entry) {
return browserify({
entries: [entry]
})
.bundle()
.on('error', callback)
.pipe(source(entry))
.pipe(gulp.dest('dist/resource/js'));
});
eventstream.merge(tasks)
.on('end', callback);
});
});