gulp-控制台中的任务输出未打印预期结果

gulp-task output in console is not printing expected result

我有以下 gulp 任务,它在 html 文件中插入 .css.js 文件:

gulp.task('inject', function () {
    log('Injecting the JS and CSS files into index.html');

    var wiredep = require('wiredep').stream;
    var options = config.getWiredepDefaultOptions();

    return gulp.src(config.index)
        .pipe(wiredep(options))
        .pipe($.inject(gulp.src(config.customFiles), {ignorePath: options.ignorePath}))
        .pipe(gulp.dest(config.client));
});

和我的 gulp.config.js:

module.exports = function () {
    var client = './public';

    var config = {
        allJS: [
            '*.js',
            'public/js/*.js',
            'public/js/**/*.js'
        ],
        client: client,
        index: client + '/index.html',

        customFiles: [
            './public/css/*.css',
            './public/js/*.js',
            './public/js/**/*.js'
        ],

        bower: {
            json: require('./bower.json'),
            directory: './public/lib',
            ignorePath: '/public/'
        },

    };

    config.getWiredepDefaultOptions = function () {
        var options = {
            bowerJson: config.bower.json,
            directory: config.bower.directory,
            ignorePath: config.bower.ignorePath
        };

        return options;
    };

    return config;
};

这按预期工作,但是当我 运行 任务时,我得到了这个:

它总是显示 gulp-inject 3 files into index.html,即使没有添加新文件。

我的 gulp 文件有问题吗?

好吧,如果你正在使用 gulp-inject,这就是我发现的。

如果您查看 gulp-inject 中的代码,您会发现它只是输出文件计数,除非它设置了 opt.quiet。我没有在文档中看到此设置的选项,但如果您查看测试,它会显示一个正在使用的示例。

启用安静模式link第 505 行

inject(sources, {quiet: true});

生成日志语句的来源。 link 第 109 行

function getNewContent(target, collection, opt) {
  var logger = opt.quiet ? noop : function (filesCount) {
    if (filesCount) {
      log(cyan(filesCount) + ' files into ' + magenta(target.relative) + '.');
    } else {
      log('Nothing to inject into ' + magenta(target.relative) + '.');
    }
  };