You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11 Mix中Alpine重复加载,转Vite遇jQuery/Bootstrap问题求助

解决Laravel 11 Mix下Alpine重复加载的问题

核心原因

你遇到的Detected multiple instances of Alpine running错误,本质是Alpine被重复加载,大概率是以下两个来源的冲突:

  • 你在app.js中手动引入并初始化了Alpine
  • Laravel 11默认集成的Livewire自带了Alpine实例
    另外,你的Webpack配置同时编译两个独立JS文件,若页面同时引入也可能间接触发重复,但从代码来看核心冲突点还是前者。

具体解决办法

办法1:保留手动引入的Alpine,禁用Livewire自带版本

修改config/livewire.php配置文件,关闭Livewire自动加载Alpine的功能:

return [
    // 其他配置项...
    'alpine' => [
        'version' => '3.8.1', // 匹配你package.json里的Alpine版本
        'cdn' => false,
        'import' => false,
    ],
];

修改后执行php artisan config:clear清除配置缓存,确保生效。

办法2:移除手动引入的Alpine,使用Livewire自带版本

直接删掉app.js里关于Alpine的代码:

// 从app.js中删除以下三行
// import Alpine from 'alpinejs';
// window.Alpine = Alpine;
// Alpine.start();

这样就完全依赖Livewire自带的Alpine实例,避免重复初始化。

办法3:合并JS编译文件,减少冗余

你的webpack.mix.js同时编译app.js和bootstrap.js成两个独立文件,建议合并成一个,降低依赖冲突概率:

  1. 在app.js顶部引入bootstrap.js:
// app.js 开头添加
require('./bootstrap');

// 原app.js代码
import Alpine from 'alpinejs';
window.Alpine = Alpine;
Alpine.start();
require('./sb-admin-2');
  1. 修改webpack.mix.js,移除单独编译bootstrap.js的配置:
const mix = require('laravel-mix');
require('laravel-mix-purgecss');

mix.webpackConfig({
    stats: {
        children: true
    }
});

mix.js("resources/js/app.js", "public/js")
    .sass("resources/sass/app.scss", "public/css")
    .purgeCss();

额外排查点

  • 查看页面源码,确认是否有两个Alpine相关的脚本加载(比如一个是编译后的app.js,一个是Livewire注入的CDN脚本)
  • 检查sb-admin-2是否内部引入了Alpine,如果有,需要同步调整(比如删除其中的Alpine代码,或者通过Webpack externals排除重复引入)

内容的提问来源于stack exchange,提问作者Rémi Tardif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:12:18