如何将 2 个 vinyl-fs 与 gulp 合并,而不是从部分预编译任务创建临时文件

How can I merge 2 vinyl-fs with gulp to not create a temporary file from a partial pre-compiling task

为了协调 SPA 应用程序的风格,我想在 JSON 文件中定义一些样式变量,并在我的 Less 编译中使用它。

基本上它可以这样工作:

gulp.src('variables.json')
    .pipe(function () {
        // process to create a less file from json
    })
    .pipe(gulp.dest('less/_variable.json.less'))
    .on('end', function(){
        gulp.src(['less/*.less', '!less/_*.less'])
            .pipe(plugins.less())
            .pipe(gulp.dest('css'))
    });

少则:

@import "_variables.json.less";
// Other things

是否可以在进行 less 编译之前不创建中间文件? 是否可以将第一个任务的结果和 Less 源合并到同一个 vinyl fs 中来进行 Less 编译?

此致。

感谢 sven-schoenung 的评论。但我现在不想开始开发 Less 插件...... 所以,我采用了另一种方法。我开发了一个 gulp 插件,它预处理 less 文件以匹配 @json-import 指令以将生成变量注入 vinyl Less 文件。

看起来效果不错。所以我在 NPM 上发布了它。

https://www.npmjs.com/package/gulp-less-json-import