CyclicApp部署Laravel9+InertiaJS项目时Ziggy依赖解析失败求助
解决Laravel9+InertiaJS+Vue3+Jetstream部署CyclicApp时Ziggy解析错误
核心问题分析
构建报错的本质是Vite无法定位到Ziggy的Vue适配文件,要么是依赖未正确安装/生成,要么是路径配置存在问题,以下是分步解决方案:
1. 确保Ziggy依赖完整并生成本地前端文件
- 先在项目根目录执行Composer命令安装Ziggy:
composer require tightenco/ziggy - 生成本地Ziggy前端资源文件(避免直接依赖vendor目录的文件):
这个命令会在php artisan ziggy:generateresources/js目录下生成ziggy.js或ziggy.mjs,后续直接引用这个本地文件即可。
2. 修改app.js中的引用路径
将原来的引用代码:
import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m';
替换为本地生成文件的路径:
// 根据生成的文件后缀调整,比如生成的是ziggy.js就用下面的写法 import { ZiggyVue } from './ziggy'; // 如果是ziggy.mjs则改为: // import { ZiggyVue } from './ziggy.mjs';
3. 配置Vite别名优化路径解析(可选)
在vite.config.js中添加Ziggy的别名,让Vite能正确识别依赖路径:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.js', refresh: true, }), vue({ template: { transformAssetUrls: { base: null, includeAbsolute: false, }, }, }), ], resolve: { alias: { 'ziggy': 'vendor/tightenco/ziggy/dist/vue.m', }, }, });
4. 调整CyclicApp的构建脚本
修改package.json中的build命令,确保先生成Ziggy文件再执行前端构建:
{ "scripts": { "dev": "vite", "build": "php artisan ziggy:generate && vite build", "preview": "vite preview" } }
这样CyclicApp在构建时会先完成Ziggy资源生成,再执行Vite打包,避免文件缺失。
5. 确认Composer依赖在部署时已安装
检查CyclicApp的部署流程,确保composer install --optimize-autoloader --no-dev这类命令被执行,只有安装好Composer依赖,vendor目录下的Ziggy文件才会存在(如果选择保留vendor路径引用的话)。
内容的提问来源于stack exchange,提问作者Norman
相关产品推荐
相关产品推荐

