最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

next.js - "next build" failing due to useContext error - Stack Overflow

programmeradmin5浏览0评论

I create a fresh next project using npx create-next-app fresh-web-app. I run next build and get the following error:


    ▲ Next.js 15.1.5
    
       Creating an optimized production build ...
     ✓ Compiled successfully
     ✓ Linting and checking validity of types    
     ✓ Collecting page data    
    TypeError: Cannot read properties of null (reading 'useContext')
        at g (.next/server/pages/_error.js:6:12422)
    Error occurred prerendering page "/404". Read more: 
    TypeError: Cannot read properties of null (reading 'useContext')
        at exports.useContext (/Projects/fresh-web-app/node_modules/react/cjs/react.production.js:488:33)
        at g (/Projects/fresh-web-app/.next/server/pages/_error.js:6:12422)
        at renderWithHooks (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4189:18)
        at renderElement (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4327:14)
        at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4871:16)
        at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7)
        at renderNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5128:14)
        at renderChildrenArray (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5019:7)
        at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4885:9)
        at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7)
    Export encountered an error on /_error: /404, exiting the build.
     ⨯ Static worker exited with code: 1 and signal: null

I've tried selecting "app router - yes" and "app router - no" in the

create-next-app
options. Neither fix the issue. I have checked and
useContext
is not in any of the project files (except in files in the ./next directory).

Curiously, if I instead use

npm run build
then the project builds correctly. The problem is that builds also fail when deploying remotely (with Netlify).

npm version = 10.7.0
node version = v18.20.3
nvm version = 0.40.1

This is the project structure:

/.next
/app
-favicon.ico
-globals.css
-layout.js
-page.js
/node_modules
/public
-.gitignore
-jsconfig.json
-next.config.mjs
-package.json
-postcss.config.mjs
-README.md
-tailwind.config.mjs

I've tried this many times and am really stuck.

I create a fresh next project using npx create-next-app fresh-web-app. I run next build and get the following error:


    ▲ Next.js 15.1.5
    
       Creating an optimized production build ...
     ✓ Compiled successfully
     ✓ Linting and checking validity of types    
     ✓ Collecting page data    
    TypeError: Cannot read properties of null (reading 'useContext')
        at g (.next/server/pages/_error.js:6:12422)
    Error occurred prerendering page "/404". Read more: https://nextjs./docs/messages/prerender-error
    TypeError: Cannot read properties of null (reading 'useContext')
        at exports.useContext (/Projects/fresh-web-app/node_modules/react/cjs/react.production.js:488:33)
        at g (/Projects/fresh-web-app/.next/server/pages/_error.js:6:12422)
        at renderWithHooks (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4189:18)
        at renderElement (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4327:14)
        at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4871:16)
        at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7)
        at renderNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5128:14)
        at renderChildrenArray (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:5019:7)
        at retryNode (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4885:9)
        at renderNodeDestructive (/.nvm/versions/node/v18.20.3/lib/node_modules/react-dom/cjs/react-dom-server.edge.production.js:4689:7)
    Export encountered an error on /_error: /404, exiting the build.
     ⨯ Static worker exited with code: 1 and signal: null

I've tried selecting "app router - yes" and "app router - no" in the

create-next-app
options. Neither fix the issue. I have checked and
useContext
is not in any of the project files (except in files in the ./next directory).

Curiously, if I instead use

npm run build
then the project builds correctly. The problem is that builds also fail when deploying remotely (with Netlify).

npm version = 10.7.0
node version = v18.20.3
nvm version = 0.40.1

This is the project structure:

/.next
/app
-favicon.ico
-globals.css
-layout.js
-page.js
/node_modules
/public
-.gitignore
-jsconfig.json
-next.config.mjs
-package.json
-postcss.config.mjs
-README.md
-tailwind.config.mjs

I've tried this many times and am really stuck.

Share Improve this question asked Feb 17 at 1:04 nicholas_randallnicholas_randall 1762 silver badges7 bronze badges 1
  • I'm able to reproduce this using the latest version of create-next-app (15.1.7) and Next (15.1.17) – Kyle Pollard Commented Feb 17 at 1:29
Add a comment  | 

1 Answer 1

Reset to default 0

This is because you're running next build globally, which apparently is unsupported.

I opened an issue in Next.js's repo thinking it was a bug. However, they commented back saying that it's not supported to run next as a globally installed command and that you should use npm run build instead:

Locally, by using npm run build, you ensure that the build process uses the exact version of Next.js and other dependencies specified in your project's package.json file . This helps maintain consistency across different environments and prevents potential issues caused by mismatched versions, etc.

Source

So, when running locally, you should be running npm run build instead of running next build.

When running on Netlify, you should consider setting the build command to also be npm run build. For an existing site, you'll want to go to "Site configuration > Build & deploy > Continuous deployment > Build settings" and set the command there.

发布评论

评论列表(0)

  1. 暂无评论