Ada*_*kis 55 javascript gulp gulp-watch
我对Gulp非常陌生.我基本上试图查看修改后的JavaScript文件,然后使用新名称创建它的新副本.(最终会有一些处理,但罗马不是一天建成的).
我(天真)的尝试是这样的:
gulp.task('default', function() {
return gulp.watch('../**/**.js', function(obj){
gulp.src(obj.path)
.pipe(gulp.dest('foobar.js'));
});
});
Run Code Online (Sandbox Code Playgroud)
这将获取修改后的文件并成功将其复制到现在名为foobar.js的文件夹中.有什么简单的我可以替换gulp.dest('foobar.js'),只需复制和重命名src文件到位?
编辑
通过复制到位,我的意思是我想获取修改后的文件,并使用新名称将其复制到当前的位置.相当于单击文件(在Windows中)并按下control-c control-v,然后重命名生成的文件.
小智 75
我不是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('.'));
});
});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,输出文件名是 newFileName.js
要使用该模块,您需要gulp-rename使用npm(即:) 安装软件包npm install gulp-rename.
更多示例可在npm @ https://www.npmjs.com/package/gulp-rename#usage上的包详细信息页面上找到.
Ada*_*kis 10
到目前为止并不是很好,但最终看起来这就是我想要的东西(有一些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(''));
}
});
});
Run Code Online (Sandbox Code Playgroud)