example cli javascript gulp gulp-watch

javascript - cli - install gulp



Gulp: copia y renombra un archivo (2)

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:

  1. Mire todos los archivos .js en el directorio principal y
  2. cwd al cwd (directorio de trabajo actual) y
  3. Nombra todas las copias, independientemente del archivo de origen, lo mismo

Entonces podría 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, necesitará 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

Soy extremadamente nuevo en Gulp. Básicamente estoy tratando de ver 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 intento (ingenuo) 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 ahora llamada foobar.js. ¿Hay algo simple que pueda reemplazar gulp.dest(''foobar.js'') con eso que simplemente copie y cambie el nombre del archivo src en su lugar?

EDITAR

Por copia en su 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 renombrar el archivo resultante.


No fue bonito llegar allí, pero al final parece que esto es lo que quiero (con algo 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('''')); } }); });