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


2 回复

Node.js NPM 安装包出错 TypeError: Request path contains unescaped characters

当你尝试使用 NPM 安装某些包时,可能会遇到 TypeError: Request path contains unescaped characters 错误。这个问题通常是由于 NPM 使用了包含非法字符的 URL 导致的。

解决方法

根据经验,这种错误通常是因为 NPM 配置中的仓库地址包含了 HTTPS 而不是 HTTP。你可以通过将 NPM 的仓库地址改为 HTTP 来解决这个问题。以下是具体步骤:

  1. 设置 NPM 仓库地址为 HTTP

    打开终端或命令行工具,运行以下命令:

    npm config set registry http://registry.npmjs.org/
    

    这条命令会将 NPM 的默认仓库地址从 HTTPS 改为 HTTP。这样可以避免因为 HTTPS URL 中的特殊字符导致的错误。

  2. 验证配置是否更改成功

    你可以在终端中运行以下命令来确认配置是否已更改:

    npm config get registry
    

    如果输出结果是 http://registry.npmjs.org/,则表示配置已经成功更改。

  3. 重新安装包

    现在你可以尝试重新安装之前出错的包,应该不会再出现同样的问题了。

    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 请求有限制或需要代理。

回到顶部