在SvelteKit中无法导入barba.js的问题求助
SvelteKit中Barba.js导入引发TypeError的解决方法
问题代码(+layout.svelte)
<script> import "../app.css"; import barba from "@barba/core"; barba.init(); </script> <svelte:body data-barba="wrapper" /> <section class="bg-black text-white" data-barba="container" data-barba-namespace="home" > <slot /> </section>
报错信息
TypeError: Cannot read properties of undefined (reading 'default') at +layout.svelte:4:2
错误原因
- 导入方式错误:
@barba/core未提供默认导出,直接使用import barba from "@barba/core"会导致无法读取default属性,触发报错。 - SSR环境冲突:在SvelteKit的服务器端渲染(SSR)阶段直接调用
barba.init(),会因缺少浏览器环境API引发额外问题。
解决方案
修改代码如下,调整导入方式并将Barba初始化逻辑放在客户端专属执行钩子中:
<script> import "../app.css"; import { onMount } from 'svelte'; import * as barba from "@barba/core"; // 确保仅在客户端浏览器环境中初始化Barba onMount(() => { barba.init(); }); </script> <svelte:body data-barba="wrapper" /> <section class="bg-black text-white" data-barba="container" data-barba-namespace="home" > <slot /> </section>
额外检查:确保已正确安装@barba/core依赖,若未安装可执行以下命令:
npm install @barba/core # 或使用pnpm pnpm add @barba/core
内容的提问来源于stack exchange,提问作者Yajat Vishwakk
相关产品推荐
相关产品推荐

