Dans mon fichier gulp.js, je diffuse tous les fichiers HTML du dossier examples
dans le dossier build
.
Créer la tâche d'abat n'est pas difficile:
var gulp = require('gulp');
gulp.task('examples', function() {
return gulp.src('./examples/*.html')
.pipe(gulp.dest('./build'));
});
Mais je ne peux pas comprendre comment récupérer les noms de fichiers trouvés (et traités) dans la tâche, ou je ne trouve pas le bon plugin.
Je ne sais pas comment vous voulez utiliser les noms de fichiers, mais l'un d'entre eux devrait vous aider:
Si vous voulez seulement voir les noms, vous pouvez utiliser quelque chose comme gulp-debug
, qui répertorie les détails du fichier vinyle. Insérez ceci n'importe où vous voulez une liste, comme ceci:
_var gulp = require('gulp'),
debug = require('gulp-debug');
gulp.task('examples', function() {
return gulp.src('./examples/*.html')
.pipe(debug())
.pipe(gulp.dest('./build'));
});
_
Une autre option est gulp-filelog
, que je n’ai pas utilisée, mais qui sonne de la même manière (c’est peut-être un peu plus propre).
Une autre option est gulp-filesize
, qui affiche à la fois le fichier et sa taille.
Si vous voulez plus de contrôle, vous pouvez utiliser quelque chose comme gulp-tap
, qui vous permet de fournir votre propre fonction et de regarder les fichiers dans le tube.
J'ai trouvé ce plugin à faire ce que j'attendais: gulp-using
Exemple d'utilisation simple: Rechercher dans tous les fichiers du projet avec l'extension .jsx
gulp.task('reactify', function(){
gulp.src(['../**/*.jsx'])
.pipe(using({}));
....
});
Sortie:
[gulp] Using gulpfile /app/build/gulpfile.js
[gulp] Starting 'reactify'...
[gulp] Finished 'reactify' after 2.92 ms
[gulp] Using file /app/staging/web/content/view/logon.jsx
[gulp] Using file /app/staging/web/content/view/components/rauth.jsx
Voici un autre moyen simple.
var es, log, logFile;
es = require('event-stream');
log = require('gulp-util').log;
logFile = function(es) {
return es.map(function(file, cb) {
log(file.path);
return cb();
});
};
gulp.task("do", function() {
return gulp.src('./examples/*.html')
.pipe(logFile(es))
.pipe(gulp.dest('./build'));
});
Vous pouvez utiliser le module gulp-filnames pour obtenir le tableau de chemins. Vous pouvez même les regrouper par espaces de noms:
var filenames = require("gulp-filenames");
gulp.src("./src/*.coffee")
.pipe(filenames("coffeescript"))
.pipe(gulp.dest("./dist"));
gulp.src("./src/*.js")
.pipe(filenames("javascript"))
.pipe(gulp.dest("./dist"));
filenames.get("coffeescript") // ["a.coffee","b.coffee"]
// Do Something With it
Pour mon cas gulp-ignore était parfait. En option, vous pouvez passer une fonction ici:
function condition(file) {
// do whatever with file.path
// return boolean true if needed to exclude file
}
Et la tâche ressemblerait à ceci:
var gulpIgnore = require('gulp-ignore');
gulp.task('task', function() {
gulp.src('./**/*.js')
.pipe(gulpIgnore.exclude(condition))
.pipe(gulp.dest('./dist/'));
});
Si vous voulez utiliser la réponse de @OverZealous ( https://stackoverflow.com/a/21806974/1019307 ) dans TypeScript, vous devez import
au lieu de require
:
import * as debug from 'gulp-debug';
...
return gulp.src('./examples/*.html')
.pipe(debug({title: 'example src:'}))
.pipe(gulp.dest('./build'));
(J'ai aussi ajouté un title
).