You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gulp无法移动完整源文件夹目录树至目标位置求助

解决Gulp仅复制根目录文件的问题

你的问题出在两个地方:glob匹配模式错误,以及异步任务处理不当。

1. Glob模式错误

你写的src/**.*只会匹配所有子目录中带有扩展名的文件,但实际上需要覆盖src下所有文件(包括无扩展名的)和所有子目录内容,正确的匹配模式应该是src/**/*:

  • src/:指定源目录根路径
  • **/:递归匹配所有层级的子目录
  • *:匹配对应目录下的所有文件

2. 异步任务处理问题

原代码里直接调用cb(),但gulp.src的文件流是异步执行的,Gulp进程会在回调触发后直接结束,导致部分文件还没完成复制就终止了。你可以通过返回流的方式让Gulp自动管理异步流程,或者在流结束后再调用回调。

修正后的Gulpfile

方式一:返回流(推荐写法)

var gulp = require('gulp')

function defaultTask() {
    console.log("Moving all folders/files in src folder");
    return gulp.src(["src/**/*"])
      .pipe(gulp.dest('../server/public'));
}
  
exports.default = defaultTask

方式二:通过回调处理异步

var gulp = require('gulp')

function defaultTask(cb) {
    console.log("Moving all folders/files in src folder");
    gulp.src(["src/**/*"])
      .pipe(gulp.dest('../server/public'))
      .on('end', cb); // 等待文件流全部完成后再触发回调
}
  
exports.default = defaultTask

修改后运行Gulp,就能完整复制src目录下的所有文件和子目录结构到目标路径了。

内容的提问来源于stack exchange,提问作者user2771365

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 08:23:16