从Svelte 4迁移至Svelte 5时出现Unexpected character '@'错误
解决方案
1. 确认Svelte依赖已升级到Svelte 5
检查项目根目录的package.json,确保svelte版本为Svelte 5(如^5.0.0或最新的beta/rc版本)。如果版本不符,执行命令更新:
npm install svelte@latest # 或使用yarn/pnpm yarn add svelte@latest pnpm add svelte@latest
2. 更新构建工具适配Svelte 5
如果使用Vite,确保@sveltejs/vite-plugin-svelte是支持Svelte 5的版本(至少^3.0.0),并在Vite配置文件(vite.config.js/ts)中明确启用Svelte 5编译:
import { svelte } from '@sveltejs/vite-plugin-svelte'; export default { plugins: [ svelte({ compilerOptions: { version: 5 } }) ] };
3. 升级代码检查工具(如ESLint)
若项目使用ESLint,需将eslint-plugin-svelte升级到支持Svelte 5的版本(至少^2.30.0),避免语法校验误报:
npm install eslint-plugin-svelte@latest --save-dev
4. 临时过渡方案
如果以上配置暂时无法完成,可将{@render children?.()}临时改回Svelte 4的<slot />语法——Svelte 5仍兼容该写法,待环境配置完成后再切换到新语法。
内容的提问来源于stack exchange,提问作者stanley
相关产品推荐
相关产品推荐

