Gulp浏览化顺序/排序文件

时间:2016-11-12 15:16:13

标签: javascript sorting gulp browserify

我使用browserify和watchify获得了Gulp任务。如你所见,我有四个文件。 modules.js使用overlay-model.js中的类。 但浏览器确实不会保持我通过的顺序。而不是浏览器将文件按字母顺序排列,因此它首先使用modules.js

我尝试寻找解决方案gulp sort似乎无法正常工作,我找不到浏览器解决方案。

任何人都知道这件事吗?

var gulp = require('gulp');
var gutil = require('gulp-util');
var c = gutil.colors;
var sort = require('gulp-sort');
var sourcemaps = require('gulp-sourcemaps');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var browserify = require('browserify');
var watchify = require('watchify');
var babel = require('babelify');

function compile(watch) {
    var bundler = watchify(browserify([
        './assets/js/overlay-model.js',
        './assets/js/slider.js',
        './assets/js/words.js',
        './assets/js/modules.js'
    ], {
        debug: true
    })
    .transform(babel.configure({
        presets: ['es2015']
    })));

    function rebundle() {
        bundler.bundle()
            .on('error', function(err) { console.error(err); this.emit('end'); })
            .pipe(source('build.js'))
            .pipe(buffer())
            .pipe(sourcemaps.init({ loadMaps: true }))
            .pipe(sourcemaps.write('./'))
            .pipe(gulp.dest('./public'));
    }

    if (watch) {
        gutil.log(`${c.cyan('scripts')}: watching`);

        bundler.on('update', function() {
            gutil.log(`${c.cyan('scripts')}: processing`);
            rebundle();
        });
    }

    rebundle();
}

function watch() {
    return compile(true);
};

gulp.task('build', function() { return compile(); });
gulp.task('watch', function() { return watch(); });

gulp.task('scripts', ['watch']);

1 个答案:

答案 0 :(得分:1)

我认为通常您只有一个入口点(在您的情况下为modules.js),并且会使用require(...)按照您的需要加载其他模块。

// modules.js
require('./overlay-model');
require('./slider');
require('./modules');

然后使用browserify,如:

browserify('./assets/js/modules.js', ...);