设置 npm 配置代理 ubuntu 后,npm 不工作

After setting npm config proxy ubuntu, npm not working

Npm 在 运行 这两个命令后崩溃:

$ npm config set proxy http://login:pass@host:port
$ npm config set https-proxy http://login:pass@host:port

当我输入另一个命令(例如 npm installnpm build 时,我的终端显示此错误:

URIError: URI malformed
    at decodeURIComponent (native)
    at Url.parse (url.js:195:19)
    at Object.urlParse [as parse] (url.js:84:5)
    at Object.validateUrl [as validate] (/usr/share/npm/node_modules/nopt/lib/nopt.js:164:13)
    at validate (/usr/share/npm/node_modules/nopt/lib/nopt.js:212:24)
    at validate (/usr/share/npm/node_modules/nopt/lib/nopt.js:179:11)
    at /usr/share/npm/node_modules/nopt/lib/nopt.js:101:12
    at Array.map (native)
    at /usr/share/npm/node_modules/nopt/lib/nopt.js:67:15
    at Array.forEach (native)

/usr/share/npm/lib/npm.js:34
      throw new Error('npm.load() required')
      ^

Error: npm.load() required
    at Object.npm.config.get (/usr/share/npm/lib/npm.js:34:13)
    at exit (/usr/share/npm/lib/utils/error-handler.js:60:40)
    at process.errorHandler (/usr/share/npm/lib/utils/error-handler.js:178:3)
    at emitOne (events.js:77:13)
    at process.emit (events.js:169:7)
    at process._fatalException (node.js:223:26)

试试这个(在 linux 中有效)

  1. 设置代理运行:

    npm config set proxy http://username:password@host:port
    
  2. 要取消设置代理 运行:

    npm config set proxy null
    
  3. 检查代理是否设置运行:

    npm config get proxy
    

我在 运行 npm install 上遇到了同样的错误。

问题出在 .npmrc 文件中的代理密码中。它包含 % 符号。

所有特殊符号必须是URL-encoded。参见 issue #7353

当我将 % 更改为 %25 时,它开始正常工作。