Nuxt3项目中date-fns在Serverless Edge Function运行报错?
解决Nuxt3 + date-fns在Vercel Edge Function部署报错问题
可能的原因与解决方案
1. 调整Nuxt Nitro的外部依赖配置
Vercel Edge Runtime对npm包的打包逻辑和Node环境存在差异,可尝试将date-fns标记为内联外部依赖,让Nitro直接使用运行时版本而非打包处理:
// nuxt.config.ts export default defineNuxtConfig({ nitro: { externals: { inline: ['date-fns'] } } })
2. 使用date-fns的独立模块导入
改用单独的函数导入路径,避免打包时的模块解析问题:
// server/api/datefns.ts import subDays from 'date-fns/subDays' export default defineEventHandler((event) => { const someDate = subDays(new Date(), 1); return { someDate, } })
3. 指定Vercel Edge Runtime版本
在vercel.json中明确指定适配的Edge运行时版本,避免版本兼容问题:
{ "functions": { "server/**/*.ts": { "runtime": "@vercel/edge@1" } } }
4. 禁用不必要的Polyfill
Edge环境无需Node.js相关polyfill,Nuxt默认的polyfill可能与date-fns冲突,可直接禁用:
// nuxt.config.ts export default defineNuxtConfig({ build: { polyfill: false } })
验证步骤
修改配置后重新部署到Vercel Edge Function,测试/api/datefns接口是否正常返回日期数据。
内容的提问来源于stack exchange,提问作者Mick
相关产品推荐
相关产品推荐

