Gulp -复制和重命名文件

flseospp  于 2022-12-08  发布在  Gulp
关注(0)|答案(3)|浏览(244)

我对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,然后重命名结果文件。

klr1opcd

klr1opcd1#

我不是100%确定你说的是什么意思
就地复制并重命名...
但是,根据您目前的程式码,如果您只是想要:
1.查看parent目录中的所有.js文件,并
1.将它们复制到cwd(当前工作目录)并
1.名称所有副本,* 不考虑 * 源文件,相同内容
然后,您可以使用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)的数据。
有关更多示例,请访问npm@www.example.com上的软件包详细信息页面https://www.npmjs.com/package/gulp-rename#usage

hof1towb

hof1towb2#

这是不漂亮的到达那里,但最终似乎这是我想要的(与一些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(''));
        }
    });
});
sz81bmfz

sz81bmfz3#

第20行代码执行“cp file1 file2”
这就是优雅。

相关问题