composer require laravel/breeze --dev 仅安装包并注册命令,不生成文件;php artisan breeze:install 才实际创建视图、路由、配置等,否则认证功能不可用。

直接运行 composer require laravel/breeze --dev 就能装上,但光这一步不会生成任何页面或路由——必须紧接着执行 php artisan breeze:install,否则认证系统压根不工作。
为什么 composer require 后还要手动运行 php artisan breeze:install
Breeze 的 Composer 包只提供底层逻辑和安装命令,不自动发布视图、路由、控制器或前端资源。这是 Laravel 官方刻意设计的“显式控制”机制:避免在你不想要的时候污染项目结构。
-
composer require laravel/breeze --dev只是把包拉进vendor/,注册了 Artisan 命令,但什么文件都不生成 -
php artisan breeze:install才真正复制 Blade/Vue/React 模板、注册routes/auth.php、修改app/Providers/RouteServiceProvider.php、写入 Tailwind 配置等 - 如果跳过
breeze:install,访问/login会直接 404;php artisan route:list里也看不到任何 auth 相关路由
php artisan breeze:install 的参数差异与实际影响
不加参数默认用 Blade + Inertia(Vue),但多数轻量项目其实只需要纯 Blade。选错模板会导致 npm 构建失败或 JS 报错,尤其在已有前端构建流程的项目里。
-
php artisan breeze:install blade:最轻量,只改 Blade 视图和传统表单提交,适合 SSR 场景,无需npm run dev也能跑通基础流程 -
php artisan breeze:install vue或react:会强制引入 Inertia、Ziggy、@inertiajs/react 等依赖,必须运行npm install && npm run dev,否则登录页空白或报Uncaught ReferenceError: inertia is not defined -
php artisan breeze:install --dark:仅修改 CSS 和 JS 切换逻辑,不影响认证流程,但会向resources/css/app.css注入深色模式类,需确认你是否已启用 Tailwind 的 darkMode 配置
常见错误:迁移失败、页面 404、样式全无的三个关键点
安装后跑不起来,90% 是卡在这三处,不是 Breeze 本身的问题,而是环境衔接没做对。
-
迁移失败:Breeze 生成的
create_users_table迁移默认含$table->string('email')->unique(),PostgreSQL 用户必须改成$table->string('email', 255)->unique(),否则报index row size exceeds maximum -
页面 404:检查
routes/web.php是否还保留着旧的Auth::routes()(Laravel UI 遗留),它会和 Breeze 的routes/auth.php冲突,删掉前者 -
样式全无:Breeze 依赖 Tailwind 编译,但
npm run dev成功不代表 CSS 生效——确认resources/css/app.css是否被resources/views/layouts/app.blade.php正确引入,且 Vite/HMR 没因缓存跳过热更新
真正容易被忽略的是:Breeze 不会覆盖你已有的 App\Models\User 类,但如果你之前手动加过 $fillable 或验证规则,RegisterRequest 里的 rules() 方法必须同步改,否则新字段提交后直接被模型过滤掉——这个逻辑断点很难从浏览器表现反推。











