Nodejs NPM 安装包出错 TypeError: Request path contains unescaped characters.
Nodejs NPM 安装包出错 TypeError: Request path contains unescaped characters.
应该是不支持 https 的 URL,改成 http 可以解决
npm config set registry http://registry.npmjs.org/
http://stackoverflow.com/questions/18006179/typeerror-request-path-contains-unescaped-characters
Node.js NPM 安装包出错 TypeError: Request path contains unescaped characters
当你尝试使用 NPM 安装某些包时,可能会遇到 TypeError: Request path contains unescaped characters
错误。这个问题通常是由于 NPM 使用了包含非法字符的 URL 导致的。
解决方法
根据经验,这种错误通常是因为 NPM 配置中的仓库地址包含了 HTTPS 而不是 HTTP。你可以通过将 NPM 的仓库地址改为 HTTP 来解决这个问题。以下是具体步骤:
-
设置 NPM 仓库地址为 HTTP
打开终端或命令行工具,运行以下命令:
npm config set registry http://registry.npmjs.org/
这条命令会将 NPM 的默认仓库地址从 HTTPS 改为 HTTP。这样可以避免因为 HTTPS URL 中的特殊字符导致的错误。
-
验证配置是否更改成功
你可以在终端中运行以下命令来确认配置是否已更改:
npm config get registry
如果输出结果是
http://registry.npmjs.org/
,则表示配置已经成功更改。 -
重新安装包
现在你可以尝试重新安装之前出错的包,应该不会再出现同样的问题了。
npm install <package-name>
示例
假设你之前试图安装 lodash
包时遇到了这个错误,你可以按以下步骤操作:
# 设置 NPM 仓库地址为 HTTP
npm config set registry http://registry.npmjs.org/
# 验证配置是否更改成功
npm config get registry
# 重新安装 lodash 包
npm install lodash
通过以上步骤,你应该能够解决 TypeError: Request path contains unescaped characters
错误,并成功安装所需的 NPM 包。
根据你提供的信息,错误 TypeError: Request path contains unescaped characters
通常是由于 URL 中包含未转义的字符导致的。这可能与 npm 配置中的 registry 地址有关。
解决方法
你可以尝试将 npm 的 registry 地址修改为使用 HTTP 而不是 HTTPS,因为某些情况下 HTTPS 地址可能会出现问题。你可以通过以下命令来设置:
npm config set registry http://registry.npmjs.org/
示例代码
如果上述方法无效,你可以尝试直接在安装包时指定 registry 地址,例如:
npm install <package-name> --registry http://registry.npmjs.org/
解释
npm config set registry <url>
:这会永久更改 npm 的默认 registry 地址。--registry <url>
:这是一个临时解决方案,在安装特定包时指定 registry 地址。
如果你仍然遇到问题,可以检查你的网络环境是否对 HTTPS 请求有限制或需要代理。