首页 > gulp 打包requirejs

gulp 打包requirejs

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);
    });
});
【热门文章】
【热门文章】