使用run-sequence调用时,Gulp注入任务不起作用

时间:2015-12-27 10:23:37

标签: gulp gulp-inject run-sequence

必修步骤

  1. clean build目录。
  2. compile typescript files然后将编译后的文件放入构建目录。
  3. inject compiled files作为index.html的脚本,然后将其放入构建目录。
  4. 项目结构

    -- build
    -- src
       --app
         --app.ts
         ..
    -- index.html
    

    的index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
    </head>
    <body>
        <!-- inject:js -->
        <!-- endinject -->
    </body>
    </html>
    

    Gulp任务

    "devDependencies": {
       "del": "^2.2.0",
       "gulp": "^3.9.0",
       "gulp-inject": "^3.0.0",
       "gulp-typescript": "^2.10.0",
       "run-sequence": "^1.1.5"
    }
    
    gulp.task('clean', function() {
       return del('build');
    });
    
    gulp.task('ts', funtion() {
       var tsProject = ts.createProject('tsconfig.json');
       return tsProject.src('src/**/*.ts')
            .pipe(ts(tsProject))
            .js.pipe(gulp.dest('build'));
    });
    
    gulp.task('inject', funtion() {
       return gulp.src('index.html')
            .pipe(inject(gulp.src('build/**/*.js', {read: false}), {ignorePath: 'build', relative: true}))
            .pipe(gulp.dest('build'));
    });
    
    gulp.task('build', function() {
       runSequence('clean', 'ts', 'inject');
    });
    

    问题

    当我执行gulp ts && gulp inject时,它完美无缺。

    当我执行gulp build时,inject不起作用,不会打印出任何信息。

    我认为运行序列存在问题。能帮我解决问题以及如何解决问题吗?

1 个答案:

答案 0 :(得分:1)

经过几个小时的挖掘后,我意识到当一个任务返回一个不合适的流时,run-sequence会在没有警告或错误的情况下停止运行。 希望这可以帮助其他有同样问题的人。