Composer 不安装 Inertia.js,只安装其 Laravel 服务端适配器 inertiajs/inertia-laravel;前端部分需用 npm 安装 @inertiajs/inertia 及对应框架包,并在 app.blade.php 中使用 @inertia 指令和 JS 中调用 createInertiaApp 才能完整启用。

Composer 本身不安装 Inertia.js —— 它只管理 PHP 依赖,而 Inertia.js 是前端 JavaScript 框架,必须通过 npm 或 yarn 安装。你真正需要的是:在 Laravel(或其他 PHP 后端)项目中,用 Composer 安装 Inertia 的 PHP 服务端绑定(@inertiajs/inertia-laravel),再用包管理器安装前端部分。
为什么 Composer install inertiajs/inertia-laravel 而不是 inertiajs/inertia
因为 inertiajs/inertia 是纯前端库(React/Vue/Svelte 用的),不能被 Composer 解析或加载;而 inertiajs/inertia-laravel 是官方提供的 Laravel 服务端适配器,它提供 Inertia::render()、中间件、响应构造等 PHP 功能,这才是 Composer 的职责范围。
常见错误现象:composer require inertiajs/inertia 报错 “Package not found”,或装了却无法调用 Inertia::render() —— 实际上你装错了包名。
-
inertiajs/inertia-laravel:必须用 Composer 安装,版本需与 Laravel 主版本对齐(如 Laravel 10 → 用^0.7) -
@inertiajs/inertia和@inertiajs/inertia-react(或-vue):必须用npm install,不能用 Composer - 混淆会导致前端请求 500(服务端无响应构造逻辑)或白屏(前端未初始化 Inertia 实例)
执行 composer require inertiajs/inertia-laravel 的前置条件
确保你的 Laravel 项目已启用 Composer 自动发现(Laravel ≥ 8.0 默认开启),否则 InertiaServiceProvider 不会自动注册。若手动配置过 config/app.php,请确认没禁用 PackageManifest 或清空过 bootstrap/cache/。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
实操建议:
- 运行前先
php artisan config:clear,避免旧配置干扰 - 检查
composer.json中"minimum-stability"不是"dev",否则可能拉到不稳定预发布版 - 若项目用了 Laravel Sail,务必在容器内执行
composer require,而非宿主机(否则 vendor 权限/路径不一致) - 安装后运行
php artisan vendor:publish --provider="InertiaProvider"(部分版本需显式执行)以发布默认中间件和配置
安装完 composer require 后,前端部分怎么接上
此时 PHP 端已就绪,但前端仍是空白:没有 createInertiaApp、没有根组件挂载、没有页面 props 注入。必须补上前端三步:
- 运行
npm install @inertiajs/inertia @inertiajs/inertia-react(或@inertiajs/inertia-vue3) - 在
resources/js/app.js中调用createInertiaApp(),并确保传入resolve函数能正确映射页面路径到组件(例如pages/${page.component}) - 确认
app.blade.php中有@routes(来自spatie/laravel-pint非必需,但@inertiajs/inertia-laravel推荐用@routes提供前端路由数据)和@inertia指令(渲染根节点) - 若使用 Vue,还需确认
app.js中已创建createApp实例,并将app.use(InertiaVue)注册为插件
典型漏点:忘了在 webpack.mix.js 中启用 .vue() 支持,或没运行 npm run dev 重新编译 JS,导致页面加载时控制台报 Uncaught ReferenceError: Inertia is not defined。
最关键的衔接点不在 Composer 命令本身,而在 app.blade.php 的 @inertia 指令是否生效、以及前端 createInertiaApp 的 setup() 是否返回了正确 app 实例——这两处任一失败,都会让整个 Inertia 流程静默中断,且无明显报错。

















