2014-05-16 1 views
2

Gulp에 이상한 문제가 있습니다. 다음은 내 Gulp 파일입니다.Gulp가 두 번째 실행시 잘못된 디렉토리에 파일을 넣습니다.

var gulp = require('gulp'); 
var autoprefixer = require('gulp-autoprefixer'); 
var notify = require('gulp-notify'); 
var sass = require('gulp-ruby-sass'); 

gulp.task('default', function() { 
    gulp.run('main'); 

    gulp.watch('sass/*.scss', function() { 
     gulp.run('main'); 
    }) 
}); 


gulp.task('main', function() { 
    return gulp.src('sass/**/*.scss') 
     .pipe(sass()) 
     .on('error', notify.onError(function(error) { return 'Error: ' + error.message; })) 
     // .pipe(autoprefixer('last 10 version')) 
     .pipe(gulp.dest('./css')) 
     .pipe(notify({ message: 'Your SASS has been auto-prefixed and minified.'})) 
    ; 
}); 

스크립트가 처음 올바르게 실행됩니다. 그러나 Gulp을 실행하지 않고 동일한 스크립트를 두 번 이상 실행하면 .SCSS 파일의 하위 항목으로 SASS 디렉토리에 저장됩니다. 왜 이런 일이 일어나는 지 알기나 해. 디버깅하는 방법을 모르겠습니다.

+0

당신이 최신 안정 꿀꺽 버전과 쉬를 사용하고 있는지 확인하십시오 우리에게 꿀꺽 마는 작업 전후의 프로젝트 파일 구조. 나는 당신이 '그것이 .SCSS 파일의 하위 항목으로 SASS 디렉토리에 넣었습니다.'라는 의미가 무엇인지 이해하지 못합니다. gulpfile을 사용하고 있고 저에게 예상대로 작동합니다. –

답변

1

다음 코드를 시도해보십시오.

gulp에 대해 올바른 구문을 사용하며 gulp.run()을 지원되는 함수 인수로 바꿉니다. 답을 찾을 수

var gulp = require('gulp'); 
var autoprefixer = require('gulp-autoprefixer'); 
var notify = require('gulp-notify'); 
var sass = require('gulp-ruby-sass'); 




gulp.task('main', function() { 
    return gulp.src('./sass/**/*.scss') 
    .pipe(sass()) 
    .on('error', notify.onError(function(error) { return 'Error: ' + error.message; })) 
    .pipe(gulp.dest('./css')) 
    .pipe(notify({ message: 'Your SASS has been auto-prefixed and minified.'})); 
}); 

gulp.watch('sass/*.scss', ['main']); 
gulp.task('default', ['main']); 
+0

아니요. SASS 디렉토리에 파일을 저장하고 있습니다. 그리고 여전히'gulp.run()'에 대한 오류가 나타납니다. – sehummel

+0

게시물을 전체 gulpfile으로 업데이트하십시오. gulp.run 오류는 gulp 파일에 정의되지 않은 다른 작업이 없으면 얻을 수 없습니다. – SteveLacy

+0

그건 내 전체 Gulp 파일입니다. – sehummel

1

의 gulp.dest이 gulp.src의 폴더 구조를 유지, 당신은이 기본이

로 설정되어 어떤 폴더 제외됩니다 SRC의 기본 속성을 설정할 수 있습니다 오버라이드 (override) gulp.src

에서 예를 gulp.src('./sass/' + '**/*.scss', {base: 'sass'})이 이제 대상에서 말대꾸를 제외, 더 이상 gulp.dest에 말대꾸를 추가

Seethis보기