gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:01:44 25 4
gpt4 key购买 nike

我需要使用 gulp 创建项目的克隆,并将以特定单词开头的所有文件类型更改为具有不同的单词。我试过使用 gulp-replace-name。

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

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”。您还会注意到,有些文件夹和其他文件不需要更改文件名。最后,部分文件名中包含多个句点。

这是我在使用 gulp-replace-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 中的错误。当它遇到一个目录it tries to call a callback cb那不存在,这会导致您收到错误。它甚至不会尝试重命名您需要的目录。

我建议您使用 gulp-rename插件代替。它经过全面测试,多年来拥有庞大的用户群,因此您不太可能遇到此类问题。

这有点冗长,但可以满足您的要求:

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"]);

关于javascript - 使用 Gulp 和 Gulp Replace Name 克隆项目但重命名多个文件夹中包含特定单词的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207121/

25 4 0