Gulp-копирование и переименование файла
Я очень новичок в глотке. Я в основном пытаюсь смотреть на измененный файл JavaScript, а затем сделать новую копию с новым именем. (в конце концов, на нем будет некоторая обработка, но Рим не был построен за день).
моя (наивная) попытка такова:
gulp.task('default', function() {
return gulp.watch('../**/**.js', function(obj){
gulp.src(obj.path)
.pipe(gulp.dest('foobar.js'));
});
});
это берет измененный файл и успешно копирует его в папку, которая теперь называется foobar.js. Есть ли что-нибудь простое, что я могу заменить gulp.dest('foobar.js')
С этим просто скопируйте и переименуйте файл src в место?
редактировать
копируя на месте, я имею в виду, что хочу взять измененный файл и сделать его копию правильно где он в настоящее время является С новым именем. Эквивалент щелчка файла (в windows) и нажатия control-C control-v, а затем переименования результирующего файла.
2 ответов
Я не 100% уверен, что вы подразумеваете под
скопировать и переименовать ... на месте
но, основываясь на вашем текущем коде, если вы просто хотите:
- Смотреть всем
.js
файлы родитель и - скопируйте их в
cwd
(текущий рабочий каталог) и - имя все экземпляра, независимо от исходного файла же вещь
затем вы могли бы использовать gulp-переименовать для этого:
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('.'));
});
});
в этом случае имя файла для вывода составляет newFileName.js
чтобы использовать модуль, вам необходимо установить gulp-rename
пакет с npm (т. е.:npm install gulp-rename
).
дополнительные примеры доступны на странице сведений о пакете на npm @ https://www.npmjs.com/package/gulp-rename#usage
Это было не очень хорошо, но в конце концов, похоже, это то, что я хочу (с некоторым ES6, перемещающимся посередине).
ключ кажется объектом options с базовым свойством в вызове src
. Кажется, это то, что необходимо для поддержания пути к текущему файлу в вызове 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(''));
}
});
});