无法安装或运行codemod?报EUNSUPPORTEDPROTOCOL错误求助
问题
执行npx codemod react/findDOMNode --target src运行codemod失败,全局安装codemod(npm i -g codemod)时也触发相同错误:
npm error code EUNSUPPORTEDPROTOCOL npm error Unsupported URL Type "catalog:": catalog:
完整日志信息如下:
0 verbose cli /Users/paulweijtens/.nvm/versions/node/v20.14.0/bin/node /Users/paulweijtens/.nvm/versions/node/v20.14.0/bin/npm 1 info using npm@10.8.2 2 info using node@v20.14.0 3 silly config load:file:/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/npmrc 4 silly config load:file:/Users/paulweijtens/.npmrc 5 silly config load:file:/Users/paulweijtens/.nvm/versions/node/v20.14.0/etc/npmrc 6 verbose title npm i codemod 7 verbose argv "i" "--global" "codemod" 8 verbose logfile logs-max:10 dir:/Users/paulweijtens/.npm/_logs/2024-07-16T14_48_56_456Z- 9 verbose logfile /Users/paulweijtens/.npm/_logs/2024-07-16T14_48_56_456Z-debug-0.log 10 silly packumentCache heap:4345298944 maxSize:1086324736 maxEntrySize:543162368 11 silly logfile start cleaning logs, removing 2 files 12 silly idealTree buildDeps 13 silly fetch manifest codemod@* 14 silly packumentCache full:https://registry.npmjs.org/codemod cache-miss 15 silly logfile done cleaning log files 16 http fetch GET 200 https://registry.npmjs.org/codemod 731ms (cache revalidated) 17 silly packumentCache full:https://registry.npmjs.org/codemod set size:217441 disposed:false 18 silly placeDep ROOT codemod@0.11.29 OK for: want: * 19 verbose stack Error: Unsupported URL Type "catalog:": catalog: 19 verbose stack at unsupportedURLType (/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/npm-package-arg/lib/npa.js:310:15) 19 verbose stack at fromURL (/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/npm-package-arg/lib/npa.js:367:13) 19 verbose stack at Function.resolve (/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/npm-package-arg/lib/npa.js:83:12) 19 verbose stack at /Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:1008:39 19 verbose stack at run (/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:67:22) 19 verbose stack at /Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:84:9 19 verbose stack at new Promise (<anonymous>) 19 verbose stack at callLimit (/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:35:69) 19 verbose stack at #buildDepStep (/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:1022:11) 19 verbose stack at async Arborist.buildIdealTree (/Users/paulweijtens/.nvm/versions/node/v20.14.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:181:7) 20 error code EUNSUPPORTEDPROTOCOL 21 error Unsupported URL Type "catalog:": catalog: 22 silly unfinished npm timer reify 1721141336722 23 silly unfinished npm timer reify:loadTrees 1721141336724 24 silly unfinished npm timer idealTree:buildDeps 1721141336730 25 silly unfinished npm timer idealTree:#root 1721141336730 26 verbose cwd /Users/paulweijtens/Documents 27 verbose os Darwin 23.5.0 28 verbose node v20.14.0 29 verbose npm v10.8.2 30 verbose exit 1 31 verbose code 1 32 error A complete log of this run can be found in: /Users/paulweijtens/.npm/_logs/2024-07-16T14_48_56_456Z-debug-0.log
原因与解决方法
原因
你的npm配置中存在无效的catalog:协议URL,大概率是.npmrc文件里的配置项写错了格式,导致npm处理依赖解析时无法识别这个非标准URL类型。
解决步骤
检查npm配置
执行命令查看当前所有npm配置,定位错误项:npm config list重点查找输出中包含
catalog:的配置内容。修复
.npmrc文件
打开用户目录下的.npmrc文件(路径:/Users/paulweijtens/.npmrc),删除或修正任何以catalog:开头的错误配置行。清除npm缓存
执行命令强制清除npm缓存,避免残留错误配置影响:npm cache clean --force重新尝试操作
再次执行全局安装或npx命令,验证错误是否消失:npm i -g codemod # 或 npx codemod react/findDOMNode --target src
内容的提问来源于stack exchange,提问作者paul23
相关产品推荐
相关产品推荐

