簡體   English   中英

Gulp Browserify訂單/排序文件

[英]Gulp browserify order/sort files

我已經使用browserify和watchify完成了Gulp任務。 如您所見,我有四個文件。 modules.js使用overlay-model.js的類。 但是browserify不能保持我傳遞的順序。 而不是那種browserify將文件按字母順序放置,因此它首先使用modules.js

我試圖尋找一個解決方案一飲而盡排序好好嘗試似乎工作,我無法找到一個browserify十歲上下的解決方案。

有人知道嗎?

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']);

我認為通常情況下,您只有一個入口點(在您的情況下為modules.js )將使用require(...)來按require(...)加載其他模塊。

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

然后像這樣使用browserify

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM