J'ai une tâche gulp qui tente de convertir des fichiers .scss en fichiers .css (en utilisant gulp-ruby-sass), puis placez le fichier .css résultant au même endroit où il a trouvé le fichier d'origine. Le problème est que, puisque j'utilise un modèle de globbing, je ne sais pas nécessairement où le fichier d'origine est stocké.
Dans le code ci-dessous, j'essaie d'utiliser gulp-tap pour accéder au flux et déterminer le chemin du fichier du fichier actuel à partir duquel le flux a été lu:
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));
});
Sur la base de la sortie de console.log(fileLocation)
, ce code semble fonctionner correctement. Cependant, les fichiers CSS résultants semblent être placés un répertoire plus haut que ce à quoi je m'attendais. Là où il devrait être project/sass/partials
, le chemin du fichier résultant est juste project/partials
.
S'il existe une manière beaucoup plus simple de faire cela, j'apprécierais certainement encore plus cette solution. Merci!
la source
sass
dossier?gulp.src("dist/**/*")
...gulp.dest("./")
sass
. Peut-être que le plugin sass modifie déjà les chemins?C'est plus simple que les nombres1311407. Vous n'avez pas du tout besoin de spécifier le dossier de destination, utilisez simplement
.
. Assurez-vous également de définir le répertoire de base.la source
./sass
, mais la question spécifie que la sortie conserve lesass
dir, c'est pourquoi il est répété dans ledest
. Cette réponse obtient le même résultat en utilisant l'option de base, mais aucune des deux approches n'est erronée.css
répertoire ou similaire, pas desass
verssass
. Dans de tels cas, la réponse acceptée est en fait plus simple que cette alternative.Réponse à l'origine donnée ici: https://stackoverflow.com/a/29817916/3834540 .
Je sais que ce fil est vieux, mais il apparaît toujours comme le premier résultat sur Google, alors j'ai pensé que je pourrais aussi bien publier le lien ici.
la source
dest
incorrecte. Bien sûr, les solutions données fonctionnent, mais le faire correctement la première fois, simplement en les remplaçantdest('./')
pardest('./images')
, aurait obtenu le même résultat.Cela a été très utile!
la source