React项目执行npm start报ERR_PACKAGE_PATH_NOT_EXPORTED错误如何解决?
问题根因
该报错是两个因素叠加导致的:
- 你当前设备使用的Node 17对
package.json的exports字段解析规则更严格,嵌套安装的postcss 8.2.6版本的exports配置写法不符合Node 17的规范,无法识别./lib/tokenize的导入路径 - 无超级用户权限的环境下npm安装依赖时无法正常做依赖扁平化,导致postcss-safe-parser调用了自身嵌套目录下的旧版postcss,其他设备依赖扁平化后调用的是根目录兼容高版本Node的postcss,因此运行正常
解决方案(按优先级尝试,均不需要超级用户权限)
方案1:清理依赖重装
执行以下命令删除本地旧依赖和锁文件后重新安装,触发依赖扁平化:rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml npm install安装完成后重新执行
npm start启动项目即可。方案2:强制指定postcss版本
如果方案1无效,在项目根目录的package.json中新增overrides配置,强制所有依赖统一使用兼容高版本Node的postcss版本:{ // 保留你原有package.json的所有配置,新增以下字段 "overrides": { "postcss": "^8.4.20" } }如果你使用yarn作为包管理器,将
overrides改为resolutions;如果使用pnpm,将字段改为pnpm.overrides。配置完成后重新执行npm install安装依赖即可。方案3:降级Node版本到16.x
如果以上两个方案都不符合你的场景,可以使用nvm在本地安装无需权限的Node 16长期支持版本:nvm install 16 --lts nvm use 16切换Node版本后重新启动项目即可。
内容的提问来源于stack exchange,提问作者Julian Chu
相关产品推荐
相关产品推荐

