Gulp.js - Utiliser le chemin de gulp.src() dans gulp.dest()
En essayant de créer une gorgée de la tâche qui pipe un tas de fichiers dans des dossiers différents, MOINS puis de les exporter dans un dossier en fonction de la source d'origine. Considérer cette structure de dossiers:
Project
+-- /Module_A
| +- /less
| | +- a.less
| +- a.css
|
+-- /Module_B
+- /less
| +- b.less
+- b.css
Voici mon gulpfile:
var gulp = require('gulp');
var gutil = require('gulp-util');
var less = require('gulp-less');
gulp.task('compileLess', function () {
gulp.src('./*/less/*.less')
.pipe(less())
.pipe(gulp.dest( ??? ));
});
gulp.task('default', ['compileLess']);
Je sais gulp.dest() attend un chemin pour être passé dans mais dans mon exemple, le chemin sera différent en fonction du fichier source. Alors, comment puis-je saisir le chemin d'accès à partir de la source, de le modifier et de le passer en gulp.dest()?
Ou je suis aller sur ce de la mauvaise façon?
- Compte tenu de votre exemple d'entrée, ce qui devrait l'être sortie? Gulp utilise le fichier relatif chemins (basé sur la première glob modèle) pour déterminer le répertoire de sortie.
- Si l'entrée est
Project/Module_A/less/a.less
, je veux que la sortie de laProject/Module_A/a.css
. J'ai été en mesure d'accomplir à l'aide de gulp-renommer plugin.
Vous devez vous connecter pour publier un commentaire.
Vous devriez jeter un oeil à gulp-renommer
Assez bien:
Vous laisser gulp.dest pointant vers votre sortie finale dir, mais de modifier à la volée le fichier individuel des chemins quelque en soit la logique que vous souhaitez à l'intérieur du rappel gulp-renommer.
gulp-rename
j'ai fait un lien?dirname
, et c'est ce que vous cherchez.dans votre
src
définir labase
option et il maintiendra le chemin d'origine de votre moins fichier.La
./dist
de destination peut être n'importe quoi. Partout où vous voulez la structure de votre fichier doit être placé.Plus d'infos ici:
https://github.com/wearefractal/glob-stream#options
base
m'a donné l'idée erronée. C'est la solution que je cherchais., {base: './'}
a été crucial../dist
nomméless
et puis mettre le fichier. Comment dois-je préciser que je veux exclure les "moins" de dossier et de mettre le fichier?