Ich habe eine gulp-Aufgabe, die versucht, .scss-Dateien in .css-Dateien zu konvertieren (mit gulp-ruby-sass) und dann die resultierende .css-Datei an der Stelle abzulegen, an der sie die Originaldatei gefunden hat. Das Problem ist, da ich ein Globbing-Muster verwende, weiß ich nicht unbedingt, wo die Originaldatei gespeichert ist.
Im folgenden Code versuche ich, mit gulp-tap auf den Stream zu tippen und den Dateipfad der aktuellen Datei herauszufinden, aus der der Stream gelesen wurde:
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));
});
Basierend auf der Ausgabe von console.log(fileLocation)
scheint dieser Code gut zu funktionieren. Die resultierenden CSS-Dateien scheinen jedoch ein Verzeichnis höher zu liegen, als ich erwartet habe. Wo es sein sollte project/sass/partials
, ist der resultierende Dateipfad nur project/partials
.
Wenn es einen viel einfacheren Weg gibt, würde ich diese Lösung definitiv noch mehr schätzen. Vielen Dank!
quelle
sass
Ordner zu legen ?gulp.src("dist/**/*")
...gulp.dest("./")
sass
. Vielleicht ändert das Sass-Plugin hier bereits die Pfade?Dies ist einfacher als die Nummern 1311407. Sie müssen den Zielordner überhaupt nicht angeben, verwenden Sie einfach
.
. Stellen Sie außerdem sicher, dass Sie das Basisverzeichnis festlegen.quelle
./sass
, aber die Frage gibt an, dass die Ausgabe dassass
Verzeichnis beibehält , weshalb sie in der wiederholt wirddest
. Diese Antwort erzielt mit der Basisoption das gleiche Ergebnis, aber keiner der beiden Ansätze ist falsch.css
Verzeichnis oder ähnliches zu exportieren , nicht vonsass
bissass
. In solchen Fällen ist die akzeptierte Antwort tatsächlich einfacher als diese Alternative.Ursprünglich hier gegebene Antwort: https://stackoverflow.com/a/29817916/3834540 .
Ich weiß, dass dieser Thread alt ist, aber er wird immer noch als erstes Ergebnis bei Google angezeigt. Ich dachte, ich könnte den Link genauso gut hier posten.
quelle
dest
falschen Verwendung . Sicher , die gegebenen Lösungen arbeiten, aber es gleich beim ersten Mal zu tun, einfach zu ersetzendest('./')
mitdest('./images')
, hätte das gleiche Ergebnis erzielt.Das war sehr hilfreich!
quelle