重用gulp.src使用gulp-inject在不同的文件中注入相同的源代码

时间:2015-08-14 14:14:52

标签: angularjs gulp

我正在自动化一个新的角度项目,我正在使用 gulp-inject 来获取我的所有项目脚本依赖项并按顺序注入它们。源脚本是使用 streamqueue 合并许多不同的流,我有两个任务使用来自streamqueue的相同结果来注入脚本路径,一个在我的index.html文件中,另一个在我的业力中。 conf.js文件。为了避免重复代码和可能的错误,我把它移到了像这样的函数

function getAppDependencies() {
    'use strict';
    return streamqueue({ objectMode: true },
        gulp.src('./wwww/js/*.js', { read: false }),
        gulp.src(paths.app + '/**/*.module.js').pipe(filesort()),
        gulp.src([paths.app + '/**/*.js', '!' + paths.app + '/**/*.module.js', '!' + paths.app + '/**/*.routes.js'], { read: false }),
        gulp.src([paths.app + '/**/*.routes.js'], { read: false }),
        gulp.src('./www/mocks/*.js', { read: false })
    );
}

这两项任务看起来非常相似。这是业力的任务

gulp.task('inject:karma', function () {
   'use strict';
   var deps = getAppDependencies(),
       tranfFn = function (filepath, file, i, length) {
           return '  "./' + filepath + '"' + (i + 1 < length ? ',' : '');
       };
    gulp.src('./tests/karma.conf.js')
        .pipe(inject(deps), {
            starttag: 'files: [',
            endtag: ']',
            transform: tranfFn,
            addRootSlash: false
        })
        .pipe(gulp.dest('./tests/'));
});

这是index.html文件的任务

gulp.task("inject", function () {
    "use strict";
    var deps = getAppDependencies();
    gulp.src('./www/index.html')
        .pipe(inject(deps, {
            starttag: '<!-- inject:scripts -->',
            addRootSlash: false,
            relative: true
         }))
        .pipe(gulp.dest('./www'));
 });

他们基本上看起来相同,但业力任务不起作用。 karma.conf.js的文件:[]设置未填充文件路径。我试图删除函数getAppDependencies并直接包含streamqueue块并且它工作。

    gulp.src('./tests/karma.conf.js')
        .pipe(inject(streamqueue({ objectMode: true } 
        // stream arguments ....

我还注意到注入任务在控制台中输出“Starting inject ...”,但它们从不输出“Finished inject ...”。有谁知道我在这里做错了什么。提前谢谢。

0 个答案:

没有答案