Gulp ile sass dosyalarımızı css 'e dönüştürürken npm üzerinde gulp-sass eklentisini kullanıyoruz.
npm install sass gulp-sass --save-dev
Çalışma alanımızda, gulp ile beraberinde gulp-sass eklentisini kurduktan sonra gulpfile.js dosyamız içerisinde ekletimizi dahil ediyoruz.
const {src, dest, watch, parallel} = require('gulp'),
sass = require('gulp-sass')(require('sass'))
Sass dosyalarımız üzerinde convert işlemi için öncelikle fonksiyonumuzu oluşturmamız gerekiyor, css adında bir fonksiyon oluşturarak devam edelim bu isim sizin kullanımınıza göre değişiklik gösterebilir.
let css = () => {
}
Oluşturduğumuz bu fonksiyon üzerinde yapacağımız işlemleri return
ile geri döndürmemiz gerekmektedir. return
ile ilk olarak sass dosyalarımızın bulunduğu dizini işaret etmemiz gerekmektedir. bu işlemi ise src
methodu ile sağlıyoruz.
let css = () => {
return src('./css/**/*')
}
Bu işlem sırasında css klasörünün altında bulunun tüm dosya ve klasörlerin içinde bulunan dosyaları elde etmemizi sağlamaktadır.
Dilerseniz aşağıdaki gibi de özelleştirebilirsiniz.
Dosyalarımızın konumunu belirledikten sonra pipe
methodu ile içerisinde sass eklentisini çağırıyoruz. Bu kullanımda eklentinin en sade hali baz alınmıştır. Ek olarak eklenti farklı özellikleride desteklemektedir, hata yakalama vb. gibi.
let css = () => {
return src('./css/**/*')
.pipe(sass())
.pipe(dest('./dist/'))
}
En son aşamada ise dönüştürülen dosyamızın dest
ile çıktısının alınacağı konumu belirlemek gerekmektedir. En sade hali ile fonksiyonumuz hazır durumdadır. Şimdi ise bu fonksiyonu gulp ile çağırabilmemiz için exports
ile task / görev ismi tanımlamamız gerekmektedir.
exports.css = css
Yukarıdaki tanımlama sonrası terminal üzerinden gulp css
komutunu çağırarak dosyalarımızı convert edebiliriz.
Eğer sass dosyalarınız üzerinde yapılan her değişiklik sonrası dosyanızın otomatik olarak convert edilmesini istiyor iseniz watch
methodu ile bu işlemi gerçekleştirebiliriz.
Bu işlem içinde ek bir fonksiyon oluşturalım ve bu fonksiyon içerisinde izlenmesi gereken sass dosyalarımızın konumunu belirtelim.
let izle = () => {
watch('./css/**/*', css)
}
Yukarıda oluşturulan izle
fonksiyonu içerisinde watch
methodu iki parametre almış olarak gözükmektedir. Bunların birincisi izlenmesini istediğimiz dosya konumu, ikincisi ise herhangi bir değişiklik aşamasında yapmak istediğimiz işlemdir.
Bu fonksiyon üzerinde ise css klasörünün altında yapılan tüm değişiklikleri izlemek ve herhangi bir değişiklikte css
fonksiyonunu çalıştırmak olacaktır.
Gulp üzerinde bu fonksiyonumuzu çalıştırabilmemiz için exports
ile task ismi tanımlamamız gerekmektedir.
exports.css = css
exports.izle = izle
exports.sass = series(izle, css)
En son yukarıdaki gibi bir tanımlama sağlamamız, her iki işlemi ayrı ayrı veya tek bir komut ile çalıştırabilmemizi sağlamaktadır.
gulp css
// komutu manuel olarak dosyalarımızın convert edilmesini sağlamaktadır. gulp izle
// belirtilen dosya konumu üzerinde değişiklik anında çalışacaktır. Bu komut ilk çalıştırma sırasında dosyalarımız convert etmeyecektir.gulp sass
// komutu ise ilk çalıştırmada dosyalarımızı dönüştürecek ve sonrasında dosyalarımız üzerindeki herhangi bir değişikliği dinleyecektir.
Yorum yapabilmek için giriş yapmanız gerekmektedir.