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:
-
Mire todos los archivos
.js
en el directorio principal y -
cwd
alcwd
(directorio de trabajo actual) y - 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(''''));
}
});
});