Javascript 使用Gulp和Gulp Replace Name克隆项目,但重命名多个文件夹中包含特定单词的文件

Javascript 使用Gulp和Gulp Replace Name克隆项目,但重命名多个文件夹中包含特定单词的文件,javascript,gulp,Javascript,Gulp,我需要使用gulp创建项目的克隆,并将所有以特定单词开头的文件类型更改为具有不同的单词。我试过用“吞咽”来代替这个名字 下面是我要克隆的项目文件夹结构的简化示例。在实际项目中,有多个嵌套文件夹 originalProject/ - readme.txt - index.php - originalProject.info.php - originalProject.setup.php - assets/ - originalProject.css - originalPro

我需要使用gulp创建项目的克隆,并将所有以特定单词开头的文件类型更改为具有不同的单词。我试过用“吞咽”来代替这个名字

下面是我要克隆的项目文件夹结构的简化示例。在实际项目中,有多个嵌套文件夹

originalProject/
 - readme.txt
 - index.php
 - originalProject.info.php
 - originalProject.setup.php
 - assets/
   - originalProject.css
   - originalProject.js
   - staticAssets.css
下面是克隆项目的一个例子:

cloneProject/
 - readme.txt
 - index.php
 - cloneProject.info.php
 - cloneProject.setup.php
 - assets/
   - cloneProject.css
   - cloneProject.js
   - staticAssets.css
如您所见,以“originalProject”开头的文件需要将该文本替换为“cloneProject”。您还将注意到,有些文件夹以及其他文件不需要更改其文件名。最后,一些文件名在文件名中包含多个句点

下面是我在使用gulpreplace name时创建的代码。如果项目中没有文件夹,则此操作有效。当我添加文件夹时,我得到一个错误

var gulp = require("gulp");
var changeFilename = require("gulp-replace-name"); 

gulp.task("duplicate", function () {
  return gulp
    .src("./orignalProject/**/*")   
    .pipe(changeFilename(/originalProject/g, "cloneProject"))
    .pipe(gulp.dest("./cloneProject"));
});

gulp.task("default", ["duplicate"]);

这是我第一次向stackoverflow发帖。我也是第一次吞咽。提前感谢您提供的任何帮助。

这是
gulp replace name
中的一个错误。当它遇到一个不存在的目录时,会导致您收到错误。它甚至不尝试重命名您需要的目录

我建议你改用这个插件。它经过了彻底的测试,多年来拥有大量的用户群,所以您不太可能遇到这样的问题

这有点冗长,但符合您的要求:

var gulp = require('gulp');
var rename = require("gulp-rename");

gulp.task("duplicate", function () {
  return gulp
    .src("./originalProject/**/*")
    .pipe(rename(function(file) {
      file.dirname = file.dirname.replace(/originalProject/g, "cloneProject");
      file.basename = file.basename.replace(/originalProject/g, "cloneProject");
    }))
    .pipe(gulp.dest("./cloneProject"));
});

gulp.task("default", ["duplicate"]);