我正在尝试使用npm install在Windows 10中下载Angular。当我在公司代理服务器上时,我将代理配置为用户名:password @ server:port
但是,我在运行
时遇到了这个问题 npm ERR! code E407
npm ERR! 407 Proxy Authorization Required: @angular/cli@latest
调试日志如下:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli '--proxy',
1 verbose cli 'http://XXXXX', //Removed my proxy details
1 verbose cli '--without-ssl',
1 verbose cli '--insecure',
1 verbose cli '-g',
1 verbose cli 'install',
1 verbose cli '@angular/cli' ]
2 info using npm@5.4.2
3 info using node@v8.8.1
4 verbose npm-session 40ab1dc3dabb6029
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 http fetch GET 407 http://registry.npmjs.org/@angular%2fcli 109ms
8 silly fetchPackageMetaData error for @angular/cli@latest 407 Proxy Authorization Required: @angular/cli@latest
9 verbose stack Error: 407 Proxy Authorization Required: @angular/cli@latest
9 verbose stack at fetch.then.res (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetchers\registry\fetch.js:42:19)
9 verbose stack at tryCatcher (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
9 verbose stack at Promise._settlePromiseFromHandler (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:512:31)
9 verbose stack at Promise._settlePromise (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:569:18)
9 verbose stack at Promise._settlePromise0 (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:614:10)
9 verbose stack at Promise._settlePromises (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:693:18)
9 verbose stack at Async._drainQueue (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\async.js:133:16)
9 verbose stack at Async._drainQueues (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\async.js:143:10)
9 verbose stack at Immediate.Async.drainQueues (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\async.js:17:14)
9 verbose stack at runCallback (timers.js:785:20)
9 verbose stack at tryOnImmediate (timers.js:747:5)
9 verbose stack at processImmediate [as _immediateCallback] (timers.js:718:5)
10 verbose cwd C:\Users\XXXXX
11 verbose Windows_NT 10.0.14393
12 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "--proxy" "http://XXXXX" "--without-ssl" "--insecure" "-g" "install" "@angular/cli"
13 verbose node v8.8.1
14 verbose npm v5.4.2
15 error code E407
16 error 407 Proxy Authorization Required: @angular/cli@latest
17 verbose exit [ 1, true ]
知道可能导致问题的原因是什么?谢谢!
答案 0 :(得分:8)
此配置对我有用:
method1(命令行):
npm config set proxy http://user:password@domain_proxy:port/
npm config set https-proxy http://user:password@domain_proxy:port
be careful the url should be encoded. for example this password 01xx!tr should be introduced as 01xx%21tr. use this site to encode your url https://www.url-encode-decode.com/
example:
user/password => user1/01xx!tr
domain:port of the proxy => mydomain.org:8000
=> in that case :
npm config set proxy http://user1:01xx%21tr@mydomain.org:8000/
npm config set https-proxy http://user1:01xx%21tr@mydomain.org:8000
method2(编辑节点conifugration文件):
the method 2 is easier because we will not be botherd with encoding the urls
1- edit node configuration file (in windows it's located in %USERPROFILE%\.npmrc, example C:\Users\Jack\.npmrc)
2- add these lines
proxy=http://user:password@domain_proxy:port/
https-proxy=https-proxy http://user:passwor`enter code here`d@domain_proxy:port
example :
if the :
user/password => user1/01xx!tr
domain:port of the proxy => mydomain.org:8000
=> the configuration file should be look like this:
proxy=http://user1:01xx!tr@mydomain.org:8000/
https-proxy=http://user1:01xx!tr@mydomain.org:8000
答案 1 :(得分:0)
尝试将npm注册表的URL设置为http而不是https。您可以查看此answer。
答案 2 :(得分:0)
如果您已配置代理和静止,则无法使用npm命令进行安装。您可以尝试以下命令。似乎你需要清除一些东西 - 这将解决问题。
npm cache verify
答案 3 :(得分:0)
这个步骤对我有用
修改.npmrc
个文件
添加以下行
proxy=http://username:password@proxyaddress:portno
https-proxy=http://username:password@proxyaddress:portno
答案 4 :(得分:0)
对我有用的东西如下 问题:在“ C:\ Users *用户名* .npmrc”中定义的注册表错误。需要更新npm配置注册表。
步骤1 解决方案:从“ C:\ Users *用户名* .npmrc”文件中删除了注册表项。
第2步 步骤1之后,我遇到了以下错误
npm install -g @ angular / cli npm WARN注册表https://registry.npmjs.org/出现意外警告:其他警告SELF_SIGNED_CERT_IN_CHAIN:对https://registry.npmjs.org/@angular%2fcli的请求失败,原因:证书链中的自签名证书 npm WARN注册表由于重新验证期间发生请求错误,因此使用了https://registry.npmjs.org/中的过期软件包数据。
问题:npm维护者在2月27日宣布,npm的自签名证书不再存在: 今天一整天,一堆用户在安装和发布软件包时收到“ SELFSIGNEDCERTINCHAIN”错误。 npm不再支持其自签名证书。 但是,推荐的修复程序对我而言失败。
解决方案:打开命令提示符,然后在命令下面运行。 地方性 设置npm_config_strict-ssl = false npm安装npm -g --ca = null npm --version ENDLOCAL
第3步 现在> npm install -g @ angular / cli运行正常。
答案 5 :(得分:0)
要在办公室中配置代理,
npm config set proxy http://user:password@proxy.companyname.com:port/
npm config set https-proxy http://user:password@proxy.companyname.com:port/
答案 6 :(得分:0)
解决了。 我花了一些时间解决代理问题后,发现我的错误是设置了3个代理变量: proxy , http-proxy 和 https-proxy 强>。
(注意:我在stackoverflow上读到应该设置 http-proxy 的地方,但这是错误的)
删除 http-proxy 为我解决了此问题。
设置npm代理和npm https_proxy正确,如下所示:
npm config set proxy http://user:password@proxy.companyname.com:port/
npm config set https-proxy http://user:password@proxy.companyname.com:port/