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

Laravel11+Livewire3+AlpineJS3中$persist重定义报错求助

解决Alpine.js $persist重复定义错误

问题根源

Livewire 3 内置的 Alpine.js 实例通常已经自动注册了 @alpinejs/persist 插件,你手动重复注册就会触发「Cannot redefine property: $persist」错误。另外,插件注册时机与 Livewire 初始化流程冲突也可能导致该问题。

可行解决方案

方案1:移除手动注册的persist插件

直接删除app.js中手动导入和注册persist的代码,因为Livewire 3默认集成了该插件:
修改后的app.js:

import { Livewire, Alpine } from '../../vendor/livewire/livewire/dist/livewire.esm';

window.Alpine = Alpine;

/* Stores */
Alpine.store('darkMode', {
  on: Alpine.$persist(true).as('darkMode_on'),
  toggle() {
    this.on = !this.on;
  },
});

Livewire.start();

方案2:独立导入Alpine并注册插件

如果你的Livewire版本未内置persist,或需要自定义插件版本,直接从alpinejs包导入Alpine实例,避免使用Livewire内部的实例:
修改后的app.js:

import Alpine from 'alpinejs';
import persist from '@alpinejs/persist';
import { Livewire } from '../../vendor/livewire/livewire/dist/livewire.esm';

window.Alpine = Alpine;
Alpine.plugin(persist);

Alpine.store('darkMode', {
  on: Alpine.$persist(true).as('darkMode_on'),
  toggle() {
    this.on = !this.on;
  },
});

Livewire.start();

额外排查步骤

  • 确保@livewireScriptConfig仅在页面底部出现一次,无重复引入Livewire/Alpine脚本
  • 执行npm install更新依赖,运行php artisan optimize:clear清除框架缓存,再用npm run dev重启开发服务

内容的提问来源于stack exchange,提问作者VQH DEV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:15:11