如何解决ERR_PACKAGE_PATH_NOT_EXPORTED错误?
yarn start报错ERR_PACKAGE_PATH_NOT_EXPORTED 执行的操作
yarn start
终端错误信息
yarn run v1.22.19
warning ....\package.json: No license field
$ react-scripts start
node:internal/modules/cjs/loader:571
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tokenize' is not defined by "exports" in C:\Users\abize\Echarts-in-React\my-app\node_modules\react-scripts\node_modules\postcss\package.json
at new NodeError (node:internal/errors:399:5)
at exportsNotFound (node:internal/modules/esm/resolve:361:10)
at packageExportsResolve (node:internal/modules/esm/resolve:697:9)
at resolveExports (node:internal/modules/cjs/loader:565:36)
at Module._findPath (node:internal/modules/cjs/loader:634:31)
at Module._resolveFilename (node:internal/modules/cjs/loader:1061:27)
at Module._load (node:internal/modules/cjs/loader:920:27)
at Module.require (node:internal/modules/cjs/loader:1141:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object. (C:\Users\abize\Echarts-in-React\my-app\node_modules\react-scripts\node_modules\postcss-safe-parser\lib\safe-parser.js:1:17) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
Node.js v18.16.0
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
package.json内容
{ "name": "my-app", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/dom": ">=7.21.4", "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "echarts": "^5.4.2", "echarts-for-react": "^3.0.2", "postcss-safe-parser": "^6.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "4.0.3", "typescript": "^5.0.4", "web-vitals": "^1.0.1" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } }
已尝试的操作
- 执行
yarn cache clean清理缓存 - 手动删除
node_modules目录 - 重新执行
yarn install安装依赖
问题依旧存在,求解决办法。
解决方法
方案1:锁定兼容的postcss版本
react-scripts@4.0.3依赖的postcss版本较旧,postcss-safe-parser@6.0.0可能拉取了不兼容的高版本postcss。在package.json中添加resolutions字段锁定版本:
{ // ... 原有内容 "resolutions": { "postcss": "^7.0.39" } }
然后重新执行:
rm -rf node_modules yarn install yarn start
方案2:升级react-scripts版本
react-scripts@4.0.3对Node.js 18的支持不足,升级到兼容的版本:
# 升级到v4.x最新兼容版 yarn upgrade react-scripts@^4.0.4 # 或者直接升级到v5.x # yarn upgrade react-scripts@^5.0.1
随后重新安装依赖并启动:
rm -rf node_modules yarn install yarn start
方案3:降低Node.js版本
Node.js 18的模块解析规则与旧版react-scripts不兼容,切换到Node.js 14或16版本(可通过nvm管理版本),再重新安装依赖启动项目。
内容的提问来源于stack exchange,提问作者Abizer

