Javascript 吞咽未按正确顺序连接js文件
我正在使用gulp连接和缩小js文件。但是文件并没有按照应该的顺序连接,就像我想要的顺序一样:Javascript 吞咽未按正确顺序连接js文件,javascript,gulp,gulp-concat,gulp-order,Javascript,Gulp,Gulp Concat,Gulp Order,我正在使用gulp连接和缩小js文件。但是文件并没有按照应该的顺序连接,就像我想要的顺序一样: var scriptFiles = [ 'assets/lib/js/angular.min.js', 'assets/lib/js/angular-sanitize.min.js', 'assets/lib/js/angular-route.min.js', 'assets/lib/js/angular-ui-router.min.js', 'assets/lib/js/ang
var scriptFiles = [
'assets/lib/js/angular.min.js',
'assets/lib/js/angular-sanitize.min.js',
'assets/lib/js/angular-route.min.js',
'assets/lib/js/angular-ui-router.min.js',
'assets/lib/js/angular-css.min.js',
'assets/lib/js/angular-select.min.js',
'assets/lib/js/duration.js',
'assets/lib/js/ui-codemirror.min.js',
];
问题是,在连接后,ui-codemirr.min.js文件会转到编译文件的顶部,这会破坏javascript,因为angular.js没有初始化/加载。
为了解决这个问题,我尝试使用“gulporder”包,并编写了这个gulp任务:
gulp.task('lib-js', function() {
return gulp.src(scriptFiles)
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(order(scriptFiles, { base: './' }))
.pipe(concat('vendor.js'))
.pipe(gulp.dest('assets/compiled/js'))
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('assets/compiled/js'))
});
我传递了相同的scriptFiles数组以尝试保留顺序。但它没有起作用
然后我尝试了streamqueue插件,并更改了任务:
gulp.task('lib-js', function() {
return streamqueue({ objectMode: true },
gulp.src('assets/lib/js/angular.min.js'),
gulp.src('assets/lib/js/angular-sanitize.min.js'),
gulp.src('assets/lib/js/angular-route.min.js?v=20161018-1'),
gulp.src('assets/lib/js/angular-ui-router.min.js'),
gulp.src('assets/lib/js/angular-css.min.js'),
gulp.src('assets/lib/js/angular-select.min.js'),
gulp.src('assets/lib/js/jquery-2.1.1.min.js'),
gulp.src('assets/lib/js/material.min.js'),
gulp.src('assets/lib/js/ocLazyLoad.min.js'),
gulp.src('assets/lib/js/duration.js'),
gulp.src('assets/lib/js/ui-codemirror.min.js')
)
.pipe(concat('vendor.js'))
.pipe(gulp.dest('assets/compiled/js'))
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('assets/compiled/js'))
});
这也不管用。我无法调试为什么会发生这种情况。“order”和“streamqueue”插件对输出没有影响。有什么想法/解决方案吗?可能的重复尝试从您的管道中删除除
concat
步骤之外的所有内容,以确保不是另一个插件破坏了顺序。感谢@SvenSchoenung,这是因为ui codemirror功能由于丑陋的插件而提升。在添加了uglify({compress:{child\u funs:false}}
之后,它成功了。感谢@jannis的帮助