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

Laravel新项目安装失败:SwiftMailer安装报错求助

解决Laravel安装时SwiftMailer因大小写文件系统和目录已存在报错的问题

我之前也碰到过Windows下Composer处理大小写敏感文件的坑,结合你的报错信息,这是因为Windows是大小写不敏感的文件系统,SwiftMailer的分发包中存在大小写不同的同名文件/目录,导致解压失败;随后Composer尝试从源码克隆时,又因为之前安装过程中残留的非空目录而报错。给你几个逐步排查的解决方案:

1. 彻底清理安装残留与Composer缓存

首先要把所有可能的残留文件和缓存清理干净:

  • 手动删除项目根目录下的vendor文件夹
  • 删除项目根目录的composer.lock文件
  • 打开命令行,运行以下命令清理Composer全局缓存:
    composer clear-cache
    

2. 强制SwiftMailer使用源码安装

既然分发包(dist)的解压有大小写问题,我们可以让Composer直接从Git源码安装SwiftMailer:

  • 打开项目的composer.json文件,在config节点中添加针对SwiftMailer的偏好设置:
    "config": {
        "preferred-install": {
            "swiftmailer/swiftmailer": "source"
        }
    }
    
  • 保存文件后,回到命令行运行:
    composer install
    

3. 手动克隆SwiftMailer到指定目录

如果上面的方法还是不行,可以手动完成SwiftMailer的安装:

  • 先确保vendor/swiftmailer目录已被完全删除
  • 在命令行中执行以下命令(替换为你的项目路径):
    git clone https://github.com/swiftmailer/swiftmailer.git vendor/swiftmailer/swiftmailer
    cd vendor/swiftmailer/swiftmailer
    git checkout v6.0.2
    
  • 回到项目根目录,运行自动加载文件生成命令:
    composer dump-autoload
    

4. 调整Git的大小写敏感配置

Windows下Git默认忽略大小写,可能导致克隆时的目录识别问题,可以在项目目录下运行:

git config core.ignorecase false

这个设置会让Git区分文件名的大小写,避免因大小写问题导致的目录冲突。

补充:你的报错日志中提到的AbstractStreamBufferAcceptanceTest.php路径问题,就是典型的大小写不敏感文件系统下的文件路径冲突,以上方法应该能解决这个核心问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:27:47