You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法安装或运行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类型。

解决步骤

  1. 检查npm配置
    执行命令查看当前所有npm配置,定位错误项:

    npm config list
    

    重点查找输出中包含catalog:的配置内容。

  2. 修复.npmrc文件
    打开用户目录下的.npmrc文件(路径:/Users/paulweijtens/.npmrc),删除或修正任何以catalog:开头的错误配置行。

  3. 清除npm缓存
    执行命令强制清除npm缓存,避免残留错误配置影响:

    npm cache clean --force
    
  4. 重新尝试操作
    再次执行全局安装或npx命令,验证错误是否消失:

    npm i -g codemod
    # 或
    npx codemod react/findDOMNode --target src
    

内容的提问来源于stack exchange,提问作者paul23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 02:24:53