Gulp - 复制并重命名文件
Gulp - copy and rename a file
我对 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,然后重命名生成的文件。
我不是 100% 确定你的意思
copy and rename ... in place
但是,根据您当前的代码,如果您只是希望:
- 观看父目录和
中的所有.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
)。
上的包详细信息页面上提供了更多示例
到达那里并不是很顺利,但最后看来这就是我想要的(中间有一些 ES6 转译)。
在对 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(''));
}
});
});
我对 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,然后重命名生成的文件。
我不是 100% 确定你的意思
copy and rename ... in place
但是,根据您当前的代码,如果您只是希望:
- 观看父目录和 中的所有
- 将它们复制到
cwd
(当前工作目录)和 - 名称全部份,不管源文件,一样
.js
个文件
然后您可以使用 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
)。
到达那里并不是很顺利,但最后看来这就是我想要的(中间有一些 ES6 转译)。
在对 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(''));
}
});
});