Saya memiliki tugas gulp yang mencoba untuk mengubah file .scss menjadi file .css (menggunakan gulp-ruby-sass) dan kemudian menempatkan file .css yang dihasilkan ke tempat yang sama itu menemukan file aslinya. Masalahnya adalah, karena saya menggunakan pola globbing, saya belum tentu tahu di mana file aslinya disimpan.
Pada kode di bawah ini, saya mencoba menggunakan gulp-tap untuk masuk ke aliran dan mencari tahu jalur file dari file saat ini yang dibaca:
gulp.task('convertSass', function() {
var fileLocation = "";
gulp.src("sass/**/*.scss")
.pipe(sass())
.pipe(tap(function(file,t){
fileLocation = path.dirname(file.path);
console.log(fileLocation);
}))
.pipe(gulp.dest(fileLocation));
});
Berdasarkan keluaran dari console.log(fileLocation)
, kode ini sepertinya berfungsi dengan baik. Namun, file CSS yang dihasilkan tampaknya ditempatkan satu direktori lebih tinggi dari yang saya harapkan. Di mana seharusnya project/sass/partials
, jalur file yang dihasilkan hanya project/partials
.
Jika ada cara yang lebih sederhana untuk melakukan ini, saya pasti akan lebih menghargai solusi itu. Terima kasih!
sumber
sass
folder?gulp.src("dist/**/*")
...gulp.dest("./")
sass
. Mungkin plugin sass di sini sudah memodifikasi jalurnya?Ini lebih sederhana daripada yang dihasilkan number1311407. Anda tidak perlu menentukan folder tujuan sama sekali, cukup gunakan
.
. Juga, pastikan untuk mengatur direktori dasar.sumber
./sass
, tetapi pertanyaannya menentukan bahwa output mempertahankansass
dir, itulah sebabnya ini diulang didest
. Jawaban ini mencapai hasil yang sama dengan menggunakan opsi dasar, tetapi tidak ada pendekatan yang salah.css
direktori atau serupa, bukan darisass
kesass
. Dalam kasus seperti itu, jawaban yang diterima sebenarnya lebih sederhana daripada alternatif ini.Awalnya jawaban diberikan di sini: https://stackoverflow.com/a/29817916/3834540 .
Saya tahu utas ini sudah tua tetapi masih muncul sebagai hasil pertama di google jadi saya pikir saya sebaiknya memposting tautan di sini.
sumber
dest
salah. Tentu solusi yang diberikan berhasil, tetapi melakukannya dengan benar pada kali pertama, hanya menggantinyadest('./')
dengandest('./images')
, akan mencapai hasil yang sama.Ini sangat membantu!
sumber