2015-01-12 116 views
1

我有一個吞嚥問題。在使用gulp-watch和gulp-ruby-sass編譯scss文件時,如果有什麼改變,問題是,即時只更改一個文件並編譯文件夾中的所有文件,而我只想編譯已更改的文件。我試圖用插件gulp-changed,但得到了相同的結果。如何只編譯已經用gulp改變的sass文件?

回答

0

假設你編譯一個SCSS文件到另一個CSS文件(例如header.scss到header.css),你可以使用一飲而盡,新的編譯只有已更改的文件:

https://www.npmjs.com/package/gulp-newer

+1

請問您是否更詳細些?任何工作的例子?我一直試圖用saul文件使用gulp-newer,但是我無法達到@Naccarati詢問的效果。 –

+0

@ piotr.d我的答案[這裏](http://stackoverflow.com/a/31844630/335880)可能會幫助你,如果你還沒有得到這個工作呢。 –

-1

你可以使用一飲而盡,改變

這是我的例子http://lizhug.com/tech/gulp-changed-gulp-sass-only-compile-files-that-changed/

uglifycss = require "gulp-uglifycss" 
 
watch = require "gulp-watch" 
 
changed = require "gulp-changed" 
 

 
##編譯scss文件 
 
gulp.task 'sass', -> 
 
    gulp.src "src/scss/**/*.scss" 
 
    .pipe(changed("assets/css", {extension: ".min.css"})) //this is right    {".css"} is wrong because i use rename ".min" 
 
    .pipe(sass()) 
 
    .on "error", logError 
 
    .pipe autoprefixer 
 
    browsers: ['last 3 versions'], 
 
    cascade: true, #是否美化屬性值 默認:true 像這樣: 
 
     remove:true #是否去掉不必要的前綴 默認:true 
 
    .pipe uglifycss() 
 
    .pipe rename suffix: '.min' 
 
    .pipe gulp.dest 'assets/css' 
 
    .pipe livereload() 
 

 
#編譯coffee文件 
 
gulp.task "coffee", -> 
 
    gulp.src "src/js/**/*.coffee", read:false 
 
    .pipe(changed("assets/js", {extension: ".min.js"})) 
 
    .pipe browserify 
 
     debug: true 
 
     transform: ['coffeeify'] 
 
     extensions: ['.coffee'] 
 
    .on "error", logError 
 
    .pipe uglify() 
 
    .pipe rename suffix: ".min" 
 
    .pipe extReplace '.js' 
 
    .pipe gulp.dest "assets/js" 
 
    .pipe livereload() 
 

 
#編譯coffee文件 
 
gulp.task "coffee", -> 
 
    gulp.src "src/js/**/*.coffee", read:false 
 
    .pipe(changed("assets/js", {extension: ".js"})) 
 
    .pipe browserify 
 
     debug: true 
 
     transform: ['coffeeify'] 
 
     extensions: ['.coffee'] 
 
    .on "error", logError 
 
    .pipe uglify() 
 
    .pipe extReplace '.js' 
 
    .pipe gulp.dest "assets/js" 
 
    .pipe livereload()

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/評論/低質量帖/ 10645566) – Alex

+0

thx @alirezasafian我改變了我的答案 – user2538840