Je suis extrêmement nouveau à Gulp. J'essaie essentiellement de rechercher un fichier JavaScript modifié, puis d'en créer une nouvelle copie avec un nouveau nom. (il y aura éventuellement un traitement, mais Rome ne s’est pas construite en un jour).
Ma tentative (naïve) est la suivante:
gulp.task('default', function() {
return gulp.watch('../**/**.js', function(obj){
gulp.src(obj.path)
.pipe(gulp.dest('foobar.js'));
});
});
Cela prend le fichier modifié et le copie avec succès dans un dossier maintenant appelé foobar.js. Y a-t-il quelque chose de simple pour remplacer gulp.dest('foobar.js')
par un simple copier/renommer le fichier src?
MODIFIER
Par copie en place, je veux dire que je veux prendre le fichier modifié et en faire une copie à droite où il se trouve actuellement avec un nouveau nom. L'équivalent de cliquer sur le fichier (dans Windows) et d'appuyer sur control-c control-v, puis de renommer le fichier obtenu.
Je ne suis pas sûr à 100% de ce que vous entendez par
copier et renommer ... en place
Mais, en fonction de votre code actuel, si vous souhaitez simplement:
.js
fichiers dans le répertoire parent etcwd
(répertoire de travail actuel) etEnsuite, vous pouvez utiliser gulp-rename pour le faire:
var gulp = require('gulp');
var rename = require('gulp-rename');
gulp.task('default', function() {
return gulp.watch('../**/**.js', function(obj) {
gulp.src(obj.path)
.pipe(rename('newFileName.js'))
.pipe(gulp.dest('.'));
});
});
Dans ce cas, le nom du fichier de sortie est newFileName.js
Pour utiliser le module, vous devez installer le gulp-rename
package avec npm (c'est-à-dire: npm install gulp-rename
).
D'autres exemples sont disponibles sur la page de détails du paquet sur npm @ https://www.npmjs.com/package/gulp-rename#usage
Ce n’était pas beau d’y arriver, mais au final, c’est ce que je voulais (avec un peu de transpiling ES6 au milieu).
La clé semble être l'objet options avec une propriété de base dans l'appel à src
. Cela semble être ce qui est nécessaire pour maintenir le chemin du fichier actuel dans l'appel à dest
.
var gulp = require('gulp'),
rename = require('gulp-rename'),
babel = require('gulp-babel');
gulp.task('default', function() {
return gulp.watch('../**/$**.js', function(obj){
if (obj.type === 'changed') {
gulp.src(obj.path, { base: './' })
.pipe(babel())
.pipe(rename(function (path) {
path.basename = path.basename.replace('$', '');
}))
.pipe(gulp.dest(''));
}
});
});