我对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,然后重命名生成的文件。
答案 0 :(得分:69)
我不是100%肯定你的意思
复制并重命名......到位
但是,根据您当前的代码,如果您只是希望:
.js
个文件和cwd
(当前工作目录)和然后你可以使用gulp-rename来做到这一点:
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
要使用该模块,您需要使用npm(即:gulp-rename
)安装npm install gulp-rename
包。
答案 1 :(得分:10)
它还没有到达那里,但最终看起来这就是我想要的东西(中间有一些ES6转换)。
键似乎是调用src
时具有基本属性的options对象。这似乎是在调用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(''));
}
});
});