Node.js 6.10.0 和 npm 3.10.10 环境下 npm install 报错 Unsupported URL Type 怎么办?

新手上路,请多包涵

各路大神们, 请教个问题, 项目运行前npm install安装依赖时候会报下面的错误, 这个该怎么处理,
这项目用node@6.10.0 npm@3.10.10

npm ERR! Darwin 21.1.0
npm ERR! argv "/Users/yiche/.nvm/versions/node/v6.10.0/bin/node" "/Users/yiche/.nvm/versions/node/v6.10.0/bin/npm" "install"
npm ERR! node v6.10.0
npm ERR! npm  v3.10.10

npm ERR! Unsupported URL Type: npm:string-width@^4.2.0
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/yiche/Desktop/vue2-elm-master/npm-debug.log

尝试1: sudo npm install node-pre-gyp -g, 然后再次npm install, 还是同样的问题
尝试2: nvm删了此版本node重新加了一遍, 没用
尝试3: 更新npm, 可能此node@6.10.0匹配的npm就是能兼容最新版本3.10.10, 更新了也没反应

阅读 1.2k
avatarAI BotBETA
### 解决方案

这个错误 "Unsupported URL Type: npm:string-width@^4.2.0" 通常是由于 `package.json` 文件中某些依赖的指定方式不被旧版本的 npm 支持所导致的。在 Node.js 6.10.0 和 npm 3.10.10 这样的旧版本环境中,npm 可能无法解析一些较新的依赖格式或者 URL 写法。

#### 步骤 1: 检查 `package.json`
1. 打开项目的 `package.json` 文件。
2. 检查 `dependencies` 和 `devDependencies` 部分,看是否有依赖项使用了 npm 不支持的 URL 格式。特别是形如 `npm:package-name@version` 的依赖,这在旧版本的 npm 中可能不被支持。

#### 步骤 2: 修改依赖项
如果发现有使用不支持格式的依赖项,尝试将其修改为标准的版本号格式,例如:

"dependencies": {
"string-width": "^4.2.0"
}

而不是任何可能包含 `npm:` 前缀或其他非标准格式的写法。

#### 步骤 3: 清除 npm 缓存
有时候,清除 npm 的缓存可以解决一些奇怪的安装问题:

npm cache clean --force


#### 步骤 4: 重新安装依赖
清除缓存后,再次尝试安装依赖:

npm install


#### 步骤 5: 考虑升级 Node.js 和 npm
虽然你已经尝试过更新 npm 并发现没有解决问题,但通常建议使用更新的 Node.js 和 npm 版本,因为它们提供了更好的性能、更多的功能和更好的安全性。如果可能,考虑将 Node.js 升级到至少 LTS (长期支持) 版本,并相应地更新 npm。

如果上述步骤都不能解决问题,可能需要更详细地检查 `npm-debug.log` 文件中的错误信息,或者考虑在项目的 `package.json` 中使用 `resolutions` 字段(如果使用的是较新版本的 npm)来强制解析特定版本的依赖。不过,由于你使用的是 npm 3.10.10,这个选项可能不可用。
2 个回答
✓ 已被采纳

更新版本吧
string-width@^4.2.0node >= 8;
image.png

太老了吧,恐怕很多仓库也不支持吧,为啥不升级呢?

建议还是升级,至少用还在维护的 LTS 版本。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏