Soy extremadamente nuevo en Gulp. Básicamente, estoy tratando de buscar un archivo JavaScript modificado y luego hacer una nueva copia con un nuevo nombre. (eventualmente habrá algo de procesamiento, pero Roma no se construyó en un día).
Mi (ingenuo) intento es este:
gulp.task('default', function() { return gulp.watch('../**/**.js', function(obj){ gulp.src(obj.path) .pipe(gulp.dest('foobar.js')); }); }); Esto toma el archivo modificado y lo copia con éxito en una carpeta que ahora se llama foobar.js. ¿Hay algo simple con lo que pueda reemplazar gulp.dest('foobar.js') que simplemente copie y cambie el nombre del archivo src en su lugar?
EDITAR
Por copiar en el lugar, quiero decir que quiero tomar el archivo modificado y hacer una copia justo donde está actualmente con un nuevo nombre. El equivalente a hacer clic en el archivo (en Windows) y presionar control-c control-v, luego cambiar el nombre del archivo resultante.
No estoy 100% seguro de lo que quieres decir con
copiar y renombrar... en su lugar
Pero, según su código actual, si simplemente desea:
.js en el directorio principal ycwd (directorio de trabajo actual) yEntonces podrías usar gulp-rename para hacer precisamente eso:
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('.')); }); }); En este caso, el nombre del archivo de salida es newFileName.js
Para usar el módulo, deberá instalar el paquete gulp-rename con npm (es decir: npm install gulp-rename ).
Hay más ejemplos disponibles en la página de detalles del paquete en npm @ https://www.npmjs.com/package/gulp-rename#usage
No fue agradable llegar allí, pero al final parece que esto es lo que quiero (con algo de transpilación de ES6 en el medio).
La clave parece ser el objeto de opciones con una propiedad base en la llamada a src . Eso parece ser lo que se necesita para mantener la ruta del archivo actual en la llamada a 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('')); } }); });