我使用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']);
答案 0 :(得分:1)
我认为通常您只有一个入口点(在您的情况下为modules.js
),并且会使用require(...)
按照您的需要加载其他模块。
// modules.js
require('./overlay-model');
require('./slider');
require('./modules');
然后使用browserify
,如:
browserify('./assets/js/modules.js', ...);