使用Next-auth时出现./providers/google子路径未在exports中定义报错如何解决
报错详情
Error: Package subpath './providers/google' is not defined by "exports" in C:\Users...\node_modules\next-auth\package.json
问题原因
这个报错是*Next Auth v5(即Auth.js)*版本重构了包导出规则导致的,v4版本支持的next-auth/providers/*细分导入路径,在v5的package.json exports字段中已经被移除,旧的导入写法会触发路径校验失败。
解决方案
根据你的项目版本选择对应方案即可:
- 方案1:适配Next Auth v5写法
两种导入方式二选一即可:- 从统一的providers入口解构导入:
// 替换原有 import GoogleProvider from "next-auth/providers/google" import { Google } from "next-auth/providers" // 直接使用Google作为provider配置项,无需再调用GoogleProvider()- 从@auth/core包导入:
import GoogleProvider from "@auth/core/providers/google" - 方案2:回退到v4稳定版本
如果你不想适配v5的语法变更,直接安装v4版本即可解决问题:# npm npm install next-auth@4 # yarn yarn add next-auth@4 # pnpm pnpm add next-auth@4 - 方案3:临时禁用导出路径校验(不推荐,仅做应急)
在next.config.js中添加配置跳过包导出校验:/** @type {import('next').NextConfig} */ const nextConfig = { experimental: { esmExternals: "loose", }, } module.exports = nextConfig
内容的提问来源于stack exchange,提问作者Naveen Kala
相关产品推荐
相关产品推荐

