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

升级Next.js至最新版本后出现ERR_PACKAGE_PATH_NOT_EXPORTED错误

升级Next.js至13.0.5后启动开发服务器报错:ERR_PACKAGE_PATH_NOT_EXPORTED

错误详情

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './cjs/react.development' is not defined by "exports" in /home/oem/Desktop/cld-frontend/cld-frontend/node_modules/react/package.json
    at new NodeError (node:internal/errors:371:5)
    at throwExportsNotFound (node:internal/modules/esm/resolve:453:9)
    at packageExportsResolve (node:internal/modules/esm/resolve:729:3)
    at resolveExports (node:internal/modules/cjs/loader:482:36)
    at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
    at Function.mod._resolveFilename (/home/oem/Desktop/cld-frontend/cld-frontend/node_modules/next/dist/build/webpack/require-hook.js:23:32)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED',
  page: '/colleges/[collegeUriSlug]'
}

依赖配置对比

旧依赖(Next.js 12.1.0)

{  
  "name": "cld-frontend",  
  "version": "0.1.0",  
  "private": true,  
  "scripts": {    
    "dev": "next dev",    
    "build": "next build",    
    "start": "next start",    
    "lint": "next lint"  
  },  
  "dependencies": {    
    "classnames": "^2.3.1",    
    "dayjs": "^1.11.5",    
    "i": "^0.3.7",    
    "mongodb": "^4.10.0",    
    "next": "^12.1.0",    
    "npm": "^8.12.2",    
    "react": "17.0.2",     
    "react-device-detect": "^2.2.2",    
    "react-dom": "17.0.2",    
    "react-horizontal-scrolling-menu": "^2.7.1",     
    "react-multi-carousel": "^2.8.0",    
    "react-select": "^5.4.0",    
    "sharp": "^0.30.5"   
  },  
  "devDependencies": {    
    "@svgr/webpack": "^6.2.1",    
    "eslint": "8.9.0",    
    "eslint-config-next": "12.1.0"  
  }
}

新依赖(Next.js 13.0.5)

{  
  "name": "cld-frontend",  
  "version": "0.1.0",  
  "private": true,  
  "scripts": {    
    "dev": "next dev",    
    "build": "next build",    
    "start": "next start",    
    "lint": "next lint"  
  },  
  "dependencies": {    
    "classnames": "^2.3.1",    
    "dayjs": "^1.11.5",    
    "i": "^0.3.7",    
    "mongodb": "^4.10.0",    
    "next": "^13.0.5",    
    "npm": "^8.12.2",    
    "react": "18.2.0",    
    "react-device-detect": "^2.2.2",    
    "react-dom": "18.2.0",    
    "react-horizontal-scrolling-menu": "^2.7.1",    
    "react-multi-carousel": "^2.8.0",    
    "react-select": "^5.4.0",    
    "sharp": "^0.30.5"  
  },  
  "devDependencies": {    
    "@svgr/webpack": "^6.2.1",    
    "eslint": "8.9.0",    
    "eslint-config-next": "13.0.5"  
  }
}

已尝试的无效解决方案

  • yarn upgrade
  • 删除node_modules和package.lock.json后重新安装依赖
  • npm update 及 npm audit fix --force

可行解决方案

1. 升级第三方适配依赖

部分第三方库(如react-horizontal-scrolling-menu、react-multi-carousel)可能未适配React 18的导出结构,执行命令升级这些依赖到最新版本:

npm update react-horizontal-scrolling-menu react-multi-carousel react-device-detect

2. 配置Webpack别名(临时修复)

在项目根目录的next.config.js中添加Webpack别名,强制指向正确的React入口:

const path = require('path');

/** @type {import('next').NextConfig} */
const nextConfig = {
  webpack: (config) => {
    config.resolve.alias['react'] = path.resolve(__dirname, './node_modules/react');
    return config;
  },
};

module.exports = nextConfig;

修改完成后重启开发服务器。

3. 降级React版本适配

如果第三方库暂时无法升级,可将React降级回17.x版本(Next.js 13兼容React 17),修改package.json中的依赖:

"react": "17.0.2",
"react-dom": "17.0.2"

然后重新安装依赖:

npm install

4. 清除Next.js缓存

Next.js的缓存可能残留旧模块引用,执行以下命令清除缓存后重启服务:

rm -rf .next/
npm run dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:30:44