部署SvelteKit应用到Netlify时出现Unexpected token '.'语法错误
这个报错的核心原因是Netlify运行环境的Node.js版本过低,无法识别代码中包含的可选链?.等ES2020新增的点操作相关语法,本地Node版本符合要求所以yarn preview运行正常。
解决步骤
- 指定Netlify的Node.js版本,保证和你本地开发使用的版本一致,两种方案二选一即可:
- 在项目根目录新建
.nvmrc文件,写入对应版本号,例如18.17.0 - 在Netlify站点后台的「构建与部署-环境变量」配置页,新增变量
NODE_VERSION,值填写对应的版本号,例如18.x
- 升级SvelteKit Netlify适配器到最新版本,避免旧版本适配器转译逻辑存在缺陷:
yarn add -D @sveltejs/adapter-netlify@latest
同时检查svelte.config.js的适配器配置是否正确,参考配置如下:
import adapter from '@sveltejs/adapter-netlify'; export default { kit: { adapter: adapter() } };
- 配置Firebase依赖转译规则,避免Firebase包自带的未转译新语法触发报错,在
svelte.config.js中新增vite相关配置:
export default { kit: { vite: { optimizeDeps: { include: ['firebase/app', 'firebase/auth', 'firebase/firestore'] // 替换为你项目中实际用到的Firebase模块 }, ssr: { noExternal: process.env.NODE_ENV === 'production' ? ['firebase'] : [] } } } }
- 提交所有修改到代码仓库后,在Netlify后台触发「清除缓存并部署」,排除旧构建缓存的影响。
内容的提问来源于stack exchange,提问作者Tomáš Kebrle
相关产品推荐
相关产品推荐

