2016-08-27 3 views
0

저는 약 30 개의 폴더가 있으며 모든 폴더에는 scss 파일이 있습니다. 나는 gulp-ruby-sass을 사용하여 scss를 컴파일 중이다. 여전히 지금은 잘 작동, 오늘은 다음과 같은 오류를주는 새로운 scss 파일을 만들었습니다gulp-ruby-sass 오류 명령 줄이 너무 깁니다.

명령 줄이 너무 깁니다.

검색하고 명령 프롬프트가 특정 길이 다음에 cmd를 처리 할 수 ​​없다는 것을 이해합니다. 그러나 나는 그 문제를 어떻게 극복 할 수 있을지 모른다. 내 꿀꺽 작업을 검색 할

gulp.task('compile-css', function() { 
return sass(src + '/app/**/*.scss', { base: 'app' }) 
    .pipe(gulp.dest(dest + '/app')) 
    .pipe(browserSync.reload({ stream: true })) 
}); 

답변

1

도움이 될 gulp-ruby-sass에 대한 옵션이있을 것 같지 않습니다, 지금은 몇 달에 대한 open GitHub issue about this problem이 있었다, 그래서 나는 당신으로 인해 만들어야 할 것 같아요 해킹 된 해결 방법이 있습니다.

내가 생각할 수있는 유일한 점은 모든 SCSS 파일을 일괄 처리로 분할하고 각 일괄 처리마다 sass을 한 번 호출 한 다음 merge-stream을 사용하여 결과 스트림을 병합하는 것입니다.

이렇게하려면 먼저 모든 SCSS 파일을 찾아야합니다. 즉, glob을 직접 사용해야합니다. 당신은 당신을 위해 작동 값을 찾기 위해 maxArgs 함께 놀러해야합니다

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 })) 
}); 

:

는 다음과 같이 이러한 솔루션이 볼 수있는 것입니다. 코드 아래

+0

덕분에 루프에서 작은 수정과 Sven Schoenung 답변에 따라 쓴! 나는 그것을 시도해 줄 것이다 –

+0

안녕 위의 코드는 완벽하게 작동합니다. 하지만 maxArgs 부분을 좋아하지 않아. 그래서 나는 그 부분을 수정했다. –

0

내가

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 })) 
}); 
관련 문제