laravel 9.19+ 默认使用 vite,mix 不再默认集成;5.4–9.18 原生支持 mix,9.19+ 仍可手动运行但需确保依赖兼容,10+ 官方已移除文档且社区维护减弱。

mix 是 Laravel 5.4–9.18 默认的前端构建工具,基于 Webpack 封装。但从 Laravel 9.19 开始,官方已切换为 vite,mix 不再默认安装,也不再被推荐用于新项目。如果你正在维护旧项目、或明确需要 Webpack 的能力(如自定义 loader、复杂 CSS 预处理链、SSR 支持),才应继续用 mix。
mix 还能用吗?哪些 Laravel 版本支持
- ✅ Laravel 5.4–9.18:原生支持,
webpack.mix.js自带,npm run dev默认走 Mix - ❌ Laravel 9.19+:不再默认集成;若项目里还留着
webpack.mix.js,它仍可运行,但需手动确保依赖兼容 - ⚠️ Laravel 10+:
laravel-mix仍可安装(如npm install laravel-mix --save-dev),但官方文档已移除 Mix 内容,社区维护渐弱
常见错误现象:npm run dev 报错 Cannot find module 'laravel-mix',说明 laravel-mix 没装或版本不匹配(Laravel 10 推荐用 laravel-mix@6.3+,低版本会因 ESM 问题失败)。
webpack.mix.js 最小可用配置长什么样
不要删掉这个文件,哪怕只编译一个 CSS —— Mix 的入口和行为全靠它。
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
require('postcss-import'),
require('tailwindcss'),
]);
-
mix.js()和mix.postCss()是最常用两个方法,路径必须是相对webpack.mix.js的真实路径 - 输出目录(第二个参数)必须是
public/xxx,否则 Blade 中<script src="/js/app.js"></script>找不到文件 - 如果用了
mix.version(),会生成mix-manifest.json,Blade 中要用{{ mix('js/app.js') }}而非硬编码路径 - 不要写
mix.webpackConfig({})直接覆盖全部配置,容易破坏 Mix 内置的 resolve alias(比如@指向resources/js)
mix() Blade 指令为什么返回 404
这是最常踩的坑:开发时正常,上线后所有资源 404。
- 原因一:没运行
npm run production(而非npm run build),导致mix-manifest.json没生成或没更新 - 原因二:部署时漏传了
public/mix-manifest.json文件(它不在 Git 忽略列表里,但 CI/CD 流程可能跳过) - 原因三:用了
mix.setPublicPath('dist')却没同步改APP_URL或 Nginx root,Blade 仍按/js/xxx.js请求,但文件实际在/dist/js/xxx.js - 原因四:本地开发启用了
mix.disableNotifications()后误以为构建成功,其实mix-manifest.json根本没写入(检查控制台末尾是否有Mix manifest updated!)
mix 和 vite 能共存吗
技术上可以,但不建议。
- 你可以在同一项目里保留
webpack.mix.js和vite.config.js,分别跑npm run dev:web和npm run dev:vite - 但
@vite和{{ mix() }}不能混用在同一页面;公共资源(如图标、字体)若放在public/下,两者都能读,但哈希逻辑不同,缓存易混乱 - 更现实的做法是:老模块继续用 Mix,新模块(如独立管理后台)用 Vite 入口,通过子域名或路径前缀隔离
真正麻烦的不是共存,而是团队对两套构建逻辑的理解断层——比如有人改了 resources/js/app.js 却只跑 npm run dev,忘了 Vite 还在监听另一个端口。
Vite 的 manifest 由插件自动生成且不可绕过,Mix 的 manifest 是可选的;这个差异决定了迁移时最容易出问题的点:不是语法,而是路径映射的信任机制变了。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











