gulp-ruby-sass错误命令行太长
gulp-ruby-sass error The command line is too long
我有大约30个文件夹,每个文件夹都有scss文件。我正在使用 gulp-ruby-sass
编译 scss。现在它仍然工作正常,今天我创建了新的 scss 文件然后它开始给出以下错误
The command line is too long.
我搜索并了解命令提示符在一定长度后无法处理 cmd。但我不知道如何解决这个问题。请在下面找到我的 gulp 任务
gulp.task('compile-css', function() {
return sass(src + '/app/**/*.scss', { base: 'app' })
.pipe(gulp.dest(dest + '/app'))
.pipe(browserSync.reload({ stream: true }))
});
gulp-ruby-sass
似乎没有任何选择可以帮助,open GitHub issue about this problem 已经有几个月了,所以我认为你必须做出应有的选择有一个 hacky 解决方法。
我唯一能想到的是将所有 SCSS 文件拆分成批次并为每个批次调用一次 sass
然后使用 merge-stream
.
合并生成的流
为此,您必须首先找到所有 SCSS 文件,这意味着您需要直接使用 glob
。
这样的解决方案可能如下所示:
var glob = require('glob');
var merge = require('merge-stream');
var maxArgs = 1000;
gulp.task('compile-css', function() {
var files = glob.sync(src + '/app/**/*.scss');
var stream = merge();
while (files.length) {
stream.add(sass(files.splice(0, maxArgs), { base:'app' }));
};
return stream
.pipe(gulp.dest(dest + '/app'))
.pipe(browserSync.reload({ stream: true }))
});
您必须尝试 maxArgs
才能找到适合您的值。
下面的代码是我根据 Sven Schoenung
的答案编写的,在循环中做了一些小的修改
gulp.task('compile-css', function() {
var files = glob.sync(src + '/app/**/*.scss');
var stream = merge();
for (var i = 0; i < files.length; i++) {
var file = files[i];
stream.add(sass(file, { base: 'app' }));
}
return stream
.pipe(gulp.dest(dest + '/app'))
.pipe(browserSync.reload({ stream: true }))
});
我有大约30个文件夹,每个文件夹都有scss文件。我正在使用 gulp-ruby-sass
编译 scss。现在它仍然工作正常,今天我创建了新的 scss 文件然后它开始给出以下错误
The command line is too long.
我搜索并了解命令提示符在一定长度后无法处理 cmd。但我不知道如何解决这个问题。请在下面找到我的 gulp 任务
gulp.task('compile-css', function() {
return sass(src + '/app/**/*.scss', { base: 'app' })
.pipe(gulp.dest(dest + '/app'))
.pipe(browserSync.reload({ stream: true }))
});
gulp-ruby-sass
似乎没有任何选择可以帮助,open GitHub issue about this problem 已经有几个月了,所以我认为你必须做出应有的选择有一个 hacky 解决方法。
我唯一能想到的是将所有 SCSS 文件拆分成批次并为每个批次调用一次 sass
然后使用 merge-stream
.
为此,您必须首先找到所有 SCSS 文件,这意味着您需要直接使用 glob
。
这样的解决方案可能如下所示:
var glob = require('glob');
var merge = require('merge-stream');
var maxArgs = 1000;
gulp.task('compile-css', function() {
var files = glob.sync(src + '/app/**/*.scss');
var stream = merge();
while (files.length) {
stream.add(sass(files.splice(0, maxArgs), { base:'app' }));
};
return stream
.pipe(gulp.dest(dest + '/app'))
.pipe(browserSync.reload({ stream: true }))
});
您必须尝试 maxArgs
才能找到适合您的值。
下面的代码是我根据 Sven Schoenung
的答案编写的,在循环中做了一些小的修改
gulp.task('compile-css', function() {
var files = glob.sync(src + '/app/**/*.scss');
var stream = merge();
for (var i = 0; i < files.length; i++) {
var file = files[i];
stream.add(sass(file, { base: 'app' }));
}
return stream
.pipe(gulp.dest(dest + '/app'))
.pipe(browserSync.reload({ stream: true }))
});