Laravel中安装Vue.js后未生成asset文件夹及更新app.js的问题
问题分析与解决办法
先给你理一理,你遇到的情况大概率是Laravel版本带来的构建工具差异,还有可能是Vue的安装方式没走官方流程导致的,下面分点拆解:
1. 核心原因:Laravel 9+ 默认用 Vite 替代了 Laravel Mix
从Laravel 9开始,官方就把前端构建工具从Laravel Mix换成了Vite,这直接导致了几个关键变化:
- 不再有传统的
public/assets文件夹,编译后的前端资源默认输出到public/build目录 - 原来的
webpack.mix.js配置文件被替换成了vite.config.js - 单纯手动执行
npm install vue,Laravel不会自动帮你配置Vue的入口文件和构建规则
2. 请用Laravel官方方式安装Vue
别自己手动npm install vue了,Laravel提供了一键安装命令,能帮你自动配置好所有必要的文件和依赖:
php artisan install:vue
执行这个命令后,它会自动完成这些事:
- 安装Vue及配套的
@vitejs/plugin-vue插件 - 修改
resources/js/app.js,添加Vue的初始化代码 - 更新
vite.config.js,配置Vue的编译规则 - 在默认视图文件(比如
welcome.blade.php)中添加Vite资源引入指令
3. 检查npm命令的执行状态
如果已经用了官方命令还是没看到变化,先排查以下几点:
- 查看
npm run watch的输出日志,有没有报错信息(比如Node版本不兼容、依赖安装失败) - 确保你的Node.js版本符合Laravel要求(Laravel 10+一般需要Node 16及以上)
- 删掉
node_modules和package-lock.json,重新执行npm install,再跑npm run dev或npm run watch - 检查
resources/js/app.js里是否有Vue的引入代码,正常应该类似这样:
import { createApp } from 'vue' import ExampleComponent from './components/ExampleComponent.vue' createApp({}) .component('example-component', ExampleComponent) .mount('#app')
4. 别再找assets文件夹了
用Vite构建的话,编译后的资源都在public/build里,你只需要在Blade模板中通过@vite指令引入即可,比如:
@vite(['resources/js/app.js'])
如果还有问题,可以补充你的Laravel版本、Node版本,以及npm install和npm run watch的完整输出日志,这样能更快定位问题。
内容的提问来源于stack exchange,提问作者Liondalan
相关产品推荐
相关产品推荐

