Comment faire pour exécuter une tâche UNIQUEMENT sur fichier modifié avec Gulp regarder
J'ai l'actuel gulp tâche dont je me sers dans un gulpfile. Chemin d'accès sont d'une config.json et tout fonctionne parfaitement:
//Some more code and vars...
gulp.task('watch', function() {
gulp.watch([config.path.devfolder+"/**/*.png", config.path.devfolder+"/**/*.jpg", config.path.devfolder+"/**/*.gif", config.path.devfolder+"/**/*.jpeg"], ['imagemin-cfg']);
})
//Some more code ...
gulp.task('imagemin-cfg', function () {
return gulp.src([config.path.devfolder+"/**/*.png", config.path.devfolder+"/**/*.jpg", config.path.devfolder+"/**/*.gif", config.path.devfolder+"/**/*.jpeg"], {read: false})
.pipe(imagemin({
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngcrush()]
}))
.pipe(gulp.dest(buildType))
.pipe(connect.reload());
});
Mais j'ai encore un problème, le nombre d'images de mon projet est énorme et cette tâche prend une éternité. Je suis à la recherche d'un moyen d'exécuter ma tâche UNIQUEMENT sur les fichiers modifiés. Si j'avais une image ou de le modifier, imagemin()
ne fonctionnera que sur cette image, et non sur l'ensemble.
Une fois de plus, tout fonctionne parfaitement bien, mais le temps d'exécution est très long.
Grâce.
Vous devez vous connecter pour publier un commentaire.
"gulp modifié" n'est pas une meilleure solution pour faire cela, parce qu'il montre seulement modifié déposée dans "buildType" le dossier.
Essayer gulp-mis en cache à la place.
Une autre option est d'utiliser le trait.regarder sur("changement") de l'option.
Avec gulp.regardez, vous pouvez cibler seule la modification des fichier comme ceci.
Edit: pour Gulp v4:
Puis-je suggérer gulp-newy dans laquelle vous pouvez manipuler le chemin d'accès et nom de fichier dans votre propre fonction. Ensuite, il suffit d'utiliser la fonction de rappel à la
newy()
. Cela vous donne un contrôle complet des fichiers que vous souhaitez comparer.Cela permettra à 1:1 ou plusieurs à 1 compare.
Ouais, gulp-changé est exactement cela:
Voici un exemple réel que j'utilise tout le temps pour faire tout cela sans la nécessité pour toutes les autres paquets. Je l'utilise pour rapetisser, de renommer et de compiler tout .fichier js dans le
js
répertoire. Compilé les fichiers sont enregistrés dans undist
répertoire avec.min
ajouté avant l'extension.Les réponses ci-dessus semble partiellement incomplète et un peu moins clair pour moi, j'espère que cela est utile pour quelqu'un d'autre la recherche d'un exemple de base.
Dans la tâche ou de rappel, vous devez un paramètre d'événement, qui a un type de propriété, qui vous dira si le fichier a été ajouté, supprimé ou modifié. Meilleur pari est de faire usage de dans une condition sur votre tâche.