javascript - Gulp 浏览器对文件进行排序/排序

标签 javascript sorting gulp browserify

我有一个使用 browserify 和 watchify 的 Gulp 任务。正如你所看到的,我有四个文件。 modules.js 使用 overlay-model.js 中的类。 但 browserify 不保留我传递的顺序。 browserify 没有按字母顺序排列文件,因此它首先使用 modules.js

我会尝试寻找解决方案gulp sort似乎不起作用,我找不到 browserify-ish 解决方案。

有人知道这件事吗?

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(...)来加载其他模块按照您想要的顺序。

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

然后使用browserify,例如:

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

关于javascript - Gulp 浏览器对文件进行排序/排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564271/

相关文章:

javascript - Facebook Open Graph API 调用出现问题...需要主动访问 token 吗?

objective-c - 按日期排序 NSMutableArray,然后按字母顺序排序

arrays - Perl:对字符串中的字符进行排序

gulp - 如何确定 Gulpfile.js 中的 ASP.NET Core 环境

javascript - Gulp 调试 - 管道到 process.stdout 给出 TypeError ('invalid data' )

javascript - 为用户设置比电子邮件和密码更多的属性。

javascript - 使用 MODULARIZE 选项编译时如何访问 emscripten 的文件系统 API?

javascript - 在 Google 电子表格中删除坐标或范围无效的图表

algorithm - 计数排序 O(n+k) 时间复杂度中的 k 是多少?

angularjs - 迁移 gulp 进程以包含 typescript