gulp inject注入错误的文件顺序

gulp inject注入错误的文件顺序,gulp,gulp-inject,Gulp,Gulp Inject,我想按以下顺序注入所有js文件: 先从libs文件夹加载JS 从供应商文件夹加载第二个JS 上次从自定义文件夹加载JS 问题是每次我运行gulp watch时js文件的顺序都是随机的。我使用gulpinject和stream系列来处理文件顺序 这是我的gulpfile.js: 'use strict'; var gulp = require('gulp'); var sass = require('gulp-sass'); var browserSync = require('browse

我想按以下顺序注入所有js文件:

  • 先从libs文件夹加载JS
  • 从供应商文件夹加载第二个JS
  • 上次从自定义文件夹加载JS
问题是每次我运行gulp watch时js文件的顺序都是随机的。我使用gulpinject和stream系列来处理文件顺序

这是我的gulpfile.js:

'use strict';

var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();

var inject = require('gulp-inject');

var series = require('stream-series');

var paths = {
    sass: ['./app/assets/sass/**/*.scss']
};

gulp.task('browserSync', function() {
    browserSync.init({
        server: {
            baseDir: 'app'
        }
    })
});

gulp.task('sass', function(){
    return gulp.src('./app/assets/sass/**/*.scss')
        .pipe(sass())
        .on('error', sass.logError)
        .pipe(gulp.dest('./app/assets/css'))
        .pipe(browserSync.reload({
            stream: true
        }))
});


gulp.src('./app/**/*.html')
    .pipe(inject(gulp.src('./app/assets/js/**/*.js', {read: false}), {relative: true}))
    .pipe(gulp.dest('./app'));

gulp.task('inject', function () {
    var target = gulp.src('./app/**/*.html');

    var libStream = gulp.src(['./app/assets/js/libs/*.js'], {read: false});
    var vendorStream = gulp.src(['./app/assets/js/vendors/*.js'], {read: false});
    var appStream = gulp.src(['./app/assets/js/custom/*.js'], {read: false});

    return target.pipe(inject(series(libStream, vendorStream, appStream)))
});

gulp.task('watch',['browserSync', 'sass', 'inject'], function () {
    gulp.watch([paths.sass], ['sass']);
    gulp.watch('.app/*.html', browserSync.reload);
    gulp.watch('./app/assets/js/**/*.js', browserSync.reload);
}); 
这是我的index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>

</head>
<body>
 Home


<!-- inject:js -->
<!-- endinject -->
</body>
</html>

因为注释太长,所以这个无关的代码在您的文件中做什么

gulp.src('./app/**/*.html')
    .pipe(inject(gulp.src('./app/assets/js/**/*.js', {read: false}), {relative: true}))
    .pipe(gulp.dest('./app'));
把它拿走,看看是否有用

gulp.src('./app/**/*.html')
    .pipe(inject(gulp.src('./app/assets/js/**/*.js', {read: false}), {relative: true}))
    .pipe(gulp.dest('./app'));