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

求助:开发JS Mastery线程视频时遇ClerkInstanceContext not found错误

解决ClerkInstanceContext not found错误(跟随JS Mastery线程视频开发时遇到)

你遇到的错误信息如下:

- error node_modules\@clerk\shared\dist\esm\hooks\createContextAndHook.js (4:0) @ assertContextExists
- error Error: ClerkInstanceContext not found
null

这是Clerk最常见的上下文配置问题,以下是针对性的解决步骤:

  • 检查根组件的ClerkProvider包裹
    所有使用Clerk hooks的组件必须放在ClerkProvider内部,这是核心前提。根据你的框架调整入口文件:

    • Next.js App Router(app/layout.js):
      import { ClerkProvider } from '@clerk/nextjs';
      
      export default function RootLayout({ children }) {
        return (
          <ClerkProvider>
            <html lang="en">
              <body>{children}</body>
            </html>
          </ClerkProvider>
        );
      }
      
    • Next.js Pages Router(pages/_app.js):
      import { ClerkProvider } from '@clerk/nextjs';
      
      function MyApp({ Component, pageProps }) {
        return (
          <ClerkProvider {...pageProps}>
            <Component {...pageProps} />
          </ClerkProvider>
        );
      }
      
      export default MyApp;
      
  • 统一Clerk依赖版本
    @clerk/shared和主Clerk包(比如@clerk/nextjs)版本不匹配会导致上下文冲突。执行命令同步版本:

    npm install @clerk/nextjs@latest @clerk/shared@latest
    # yarn用户用:yarn add @clerk/nextjs@latest @clerk/shared@latest
    
  • 确认hooks的使用范围
    不要在ClerkProvider外部调用任何Clerk hooks(比如useAuth、useUser),如果是组件层级问题,把相关组件移到Provider覆盖的范围内。

  • 清除缓存重启服务
    缓存残留会导致配置不生效,执行以下操作:

    rm -rf node_modules/.cache
    npm run dev
    

    Next.js用户可以加--turbo参数强制刷新缓存。

  • 验证环境变量配置
    检查.env.local里的Clerk密钥是否正确配置,配置后必须重启服务器:

    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=你的公钥
    CLERK_SECRET_KEY=你的密钥
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:40:11