如何解决npm/yarn start启动React项目报ERR_PACKAGE_PATH_NOT_EXPORTED错误?
报错根因
该错误由postcss与postcss-safe-parser版本不兼容导致:postcss 8.0+版本调整了package.json中的exports导出规则,不再对外暴露./lib/tokenize内部路径,而低版本的postcss-safe-parser仍在直接引用该路径,Node.js 17+版本会严格校验exports导出规则,因此触发路径不存在的报错。
修复方案
- 方案1:强制指定依赖兼容版本
若使用yarn作为包管理工具,在项目根目录package.json中新增resolutions字段:
若使用npm作为包管理工具,在"resolutions": { "postcss-safe-parser/postcss": "^7.0.39" }package.json中新增overrides字段:
配置完成后删除项目根目录的"overrides": { "postcss-safe-parser": { "postcss": "^7.0.39" } }node_modules文件夹、yarn.lock或package-lock.json文件,重新执行yarn install或npm install即可。 - 方案2:升级postcss-safe-parser到适配版本
直接升级依赖到适配postcss 8的版本:
yarn执行命令:yarn add postcss-safe-parser@latest --dev
npm执行命令:npm install postcss-safe-parser@latest --save-dev
升级完成后执行yarn start或npm start即可正常启动。 - 方案3:降级Node.js版本
该错误仅在Node.js 17及以上版本触发,若无需使用高版本Node.js特性,可将Node.js版本降级到16.x LTS版本,无需修改项目依赖即可正常启动项目。
内容的提问来源于stack exchange,提问作者Niewtone
相关产品推荐
相关产品推荐

