使用gulp进行文件注入,只从文件夹中选择一些文件

时间:2017-06-05 14:49:13

标签: gulp

我使用Gulp将我的js文件注入index.html。我有以下js资源结构:

js
|-ace-builds
  |-src
    |-ace.js
    |-ext-beautify.js
    |-ext-chromevox.js
    |-ext-elastic_tabstops_lite.js
    |-...
|-angular
  |-angular.js
|-angular-ui-ace
  |-ui-ace.js
|-...

问题在于,从整个 ace-builds 文件夹中我只需要注入一个文件 ace.js 。当然,可能的解决方案之一是手动列出所有注入的文件,但我想使注射器定义非常紧凑和灵活。

问题:是否可以通过gulp进行此类文件注入,在文件夹中加入其他文件,如果是,如何?

我尝试了以下代码,同时将行(1)和(2)按相反顺序放置,但它没有工作,不包括ace.js。

gulp.task('index', function () {
    var target = gulp.src('./app/html/index.html');
    var sources = gulp.src([
        'app/js/*.js',
        '!app/js/ace-builds/**/*',                 // (1)
        'app/js/ace-builds/src-noconflict/ace.js'  // (2)
    ], { read: false });
    return target.pipe(inject(sources))
        .pipe(gulp.dest('./app/html'));
});

1 个答案:

答案 0 :(得分:0)

你的gulp.src中没有任何内容实际读取ace.js所在的文件夹。为什么不包括app / js / ** / ace.js?没有否定。顺便说一句,无论你把它列在哪里,否则总是会最后执行否定。这就是你永远不会拿起ace.js的原因。