2017-05-03 3 views
0

Jekyll + Gulp에서 빌드 환경을 사용하고 있습니다. 따라서 아래의 gulpfile.js을 사용하여 빌드 프로세스에서 먼저 컴파일 된 CSS가 포함 된 dist/css 폴더를 생성 한 다음 결과를 넣기 위해 dist 폴더 전체를 지우십시오. 그래서, 때마다 지킬 그것을 완전히 지우기 때문에 dist 폴더 안에 scss 파일을 컴파일 할 수 없습니다.지킬 지우기 폴더 (Gulp 포함)

var gulp  = require('gulp'); 
var browserSync = require('browser-sync'); 
var sass  = require('gulp-sass'); 
var child  = require('child_process'); 


gulp.task('jekyll', function (done) { 
    return child.spawn('jekyll' , ['build']).on('close', done); 
}); 

gulp.task('jekyll-rebuild', ['jekyll'], function() { 
    browserSync.reload(); 
}); 

gulp.task('browser-sync', ['sass', 'jekyll'], function() { 
    browserSync({ 
     server: { 
      baseDir: 'dist' 
     } 
    }); 
}); 

gulp.task('sass', function() { 
    return gulp.src('src/_sass/theme.scss') 
     .pipe(sass({ 
      includePaths: ['scss'], 
      onError: browserSync.notify 
     })) 
     .pipe(browserSync.reload({stream:true})) 
     .pipe(gulp.dest('dist/css')); 
}); 

gulp.task('watch', function() { 
    gulp.watch('src/_sass/*.scss', ['sass']); 
    gulp.watch(['src/*.html', 'src/_layouts/*.html', 'src/_includes/*'], ['jekyll-rebuild']); 
}); 

gulp.task('default', ['browser-sync', 'watch']); 
+0

지킬 기본적 말대꾸를 컴파일 할 수 있습니다, 왜 이것에 대한 꿀꺽를 사용하고 계십니까? – marcanuy

+0

나는 단지 그것을 쉰 목소리로 사용하지 않고있다. – user6542453

답변

0

나는 그래서이 runSequence 사용하고 stylesscripts와 병렬로 jekyll 작업을 실행하지 않도록해야합니다. 당신 지킬에서

gulp.task('build',() => { 
    runSequence('jekyll', ['styles', 'scripts']); 
}); 

gulp.task('default', ['build', 'browser-sync', 'watch']); 
0

당신이 유지하고자하는 폴더를 선언 할 필요가 config (설정) :

keep_files: [ css, build ] 

선택한 파일을 보관, 사이트 대상을 건드리지합니다. jekyll에 의해 생성되지 않은 파일에 유용합니다. 예 : 빌드 도구로 생성 된 파일 또는 자산 경로는 대상을 기준으로합니다.

https://jekyllrb.com/docs/configuration/