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

新建Laravel项目vendor文件夹占用2.09GB磁盘空间问题求助

Laravel项目vendor文件夹过大(2.09GB)的排查与解决方法

问题诊断

全新Laravel 10项目的vendor文件夹正常大小约300-500MB,2.09GB的体积明显异常,大概率由以下原因导致:

  • 下载了包含.git、测试文件、文档的源代码包(source)而非压缩包(dist)
  • 存在冗余依赖或大体积第三方包
  • Composer缓存异常

解决步骤

1. 定位大体积包

先找出vendor内占用空间最多的文件夹,针对性处理:

# Linux/macOS
du -h --max-depth=1 vendor/ | sort -hr

# Windows 可使用TreeSize Free等可视化工具扫描

2. 强制使用压缩包安装并清理缓存

执行以下命令,清除Composer缓存后,强制用dist压缩包安装(排除dev依赖可进一步减小体积):

# 清除全局缓存
composer clear-cache

# 仅安装生产依赖(推荐生产环境使用)
composer install --no-dev --prefer-dist

# 若需要保留dev依赖
composer install --prefer-dist

3. 检查全局Composer配置

确认全局配置未覆盖项目的preferred-install设置:

# 查看全局偏好设置
composer config --global preferred-install

# 若输出为source,改为dist
composer config --global preferred-install dist

4. 清理vendor内的冗余文件

使用第三方插件删除包内的测试文件、文档、.git目录等冗余内容:

# 安装清理插件(仅开发环境)
composer require --dev barryvdh/composer-cleaner

# 执行清理
composer cleaner

5. 排查异常依赖

如果定位到某个特定包体积异常,可查看该包的Composer配置,确认是否包含不必要的文件,或更换为更轻量化的替代包。


附用户提供的composer.json:

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The skeleton application for the Laravel framework.",
    "keywords": ["laravel", "framework"],
    "license": "MIT",
    "require": {
        "php": "^8.1",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^10.10",
        "laravel/sanctum": "^3.3",
        "laravel/tinker": "^2.8"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/pint": "^1.0",
        "laravel/sail": "^1.18",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^7.0",
        "phpunit/phpunit": "^10.1",
        "spatie/laravel-ignition": "^2.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "php-http/discovery": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:45:33