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

添加autoprefixer后NextAuth社交登录报错无法运行,该如何排查修复?

问题触发原因

1. 初始TypeError: Cannot destructure property 'id' of 'undefined'报错

你的NextAuth配置中providers数组存在多余的前置逗号,会生成包含undefined元素的数组:

providers: [
  ,EmailProvider({...}) // 开头的逗号会让数组第一个元素为undefined
  ,GoogleProvider({...})
]

next-auth内部遍历providers数组时,会尝试读取undefined元素的id属性,直接触发解构失败报错。你在安装autoprefixer后才出现该问题,大概率是安装过程中触发了依赖版本对齐,或你本地的代码格式化规则在安装前端工具后发生变化,自动插入了多余逗号。

2. 后续Package path ./providers is not exported报错

你修改配置时使用的import Providers from "next-auth/providers"不符合next-auth的导出规则:从你提供的package.json的exports字段可以看到,仅开放了./providers/*的匹配规则,要求必须精准导入单个provider(如next-auth/providers/google),不支持直接导入整个providers目录作为聚合对象使用。

修复方案

  1. 修正NextAuth配置的语法错误,删除providers数组中多余的前置逗号,恢复正确的单个provider导入方式,参考配置如下:
import NextAuth from "next-auth"
import EmailProvider from 'next-auth/providers/email';
import GoogleProvider from "next-auth/providers/google";

export default NextAuth({
  providers: [
    EmailProvider({
        server: process.env.EMAIL_SERVER,
        from: process.env.EMAIL_FROM,
    }),
    GoogleProvider({
        clientId: process.env.GOOGLE_CLIENT_ID,
        clientSecret: process.env.GOOGLE_CLIENT_SECRET,
    })
  ],
  jwt: {
    encryption: true,
  },
  secret: process.env.secret,
  callback: {},
  pages: {}
})
  1. 清除项目编译缓存后重启服务:
    执行rm -rf .next && npm run dev,彻底清除之前的错误编译产物。
  2. 若问题仍存在,检查包管理器锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),确认next-auth版本与安装autoprefixer之前的版本一致,排除跨版本不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:57:02