执行pnpm install时遇Cannot read properties of null (reading 'matches')错误求助
解决pnpm install报错“Cannot read properties of null (reading 'matches')”
环境信息
- pnpm: 7.29.3
- Node.js: 18.15.0
- npm: 9.5.0
执行pnpm install时触发错误:
npm ERR! Cannot read properties of null (reading 'matches')
完整错误日志:
npm verb stack TypeError: Cannot read properties of null (reading 'matches') │ npm verb stack at Link.matches (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/node.js:1119:41) │ npm verb stack at Link.canDedupe (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/node.js:1073:15) │ npm verb stack at PlaceDep.pruneDedupable (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/place-dep.js:426:14) │ npm verb stack at new PlaceDep (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/place-dep.js:278:14) │ npm verb stack at new PlaceDep (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/place-dep.js:314:26) │ npm verb stack at /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:943:31 │ npm verb stack at Array.map (<anonymous>) │ npm verb stack at [buildDepStep] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:943:8) │ npm verb stack at process.processTicksAndRejections (node:internal/process/task_queues:95:5) │ npm verb stack at async Arborist.buildIdealTree (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:207:7) │ npm verb cwd /Users/test/08mar/project │ npm verb Darwin 20.6.0 │ npm verb node v18.15.0 │ npm verb npm v9.5.0 │ npm ERR! Cannot read properties of null (reading 'matches') │ npm verb exit 1 │ npm verb unfinished npm timer reify 1680070933204 │ npm verb unfinished npm timer reify:loadTrees 1680070933204 │ npm verb unfinished npm timer idealTree:buildDeps 1680070949125 │ npm verb unfinished npm timer idealTree:node_modules/.pnpm/@discoveryjs+json-ext@0.5.7/node_modules/@discoveryjs/json-ext 1680070953308 │ npm verb code 1 │ npm ERR! A complete log of this run can be found in:/Users/test/.npm/_logs/2023-03-29T06_22_13_155Z-debug-0.log
已尝试但无效的操作:
- 删除
node_modules:rm -rf node_modules - 删除
package-lock.json:rm -rf package-lock.json - 清除pnpm store
解决方案
1. 降级npm版本
该报错源于npm 9.5.0内置的@npmcli/arborist模块bug,降级到npm 9.4.2或更早稳定版本即可修复:
npm install -g npm@9.4.2
2. 删除pnpm锁文件后重新安装
pnpm的依赖锁文件是pnpm-lock.yaml而非package-lock.json,之前的操作未清理该文件,执行以下命令:
rm -rf pnpm-lock.yaml pnpm install
3. 调整pnpm版本
尝试升级或降级pnpm版本,规避与当前Node.js、npm的兼容性问题:
- 升级到最新稳定版:
npm install -g pnpm@latest
- 降级到7.x系列更早版本:
npm install -g pnpm@7.28.0
4. 清理npm缓存
除pnpm store外,清理npm全局缓存避免残留异常文件:
npm cache clean --force
5. 检查项目路径与权限
确保项目路径无特殊字符(如空格、中文、特殊符号),且当前用户对项目目录拥有完整读写权限,避免文件系统权限问题引发安装异常。
内容的提问来源于stack exchange,提问作者pravin
相关产品推荐
相关产品推荐

