在配置代理之后,无法npm安装Angular cli



我正在尝试使用npm安装在Windows 10中下载Angular。由于我使用公司代理,我将代理配置为username:password@server:端口

然而,我在运行时遇到了这个问题

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 Filesnodejsnode_modulesnpmnode_modulespacotelibfetchersregistryfetch.js:42:19)
9 verbose stack     at tryCatcher (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleaseutil.js:16:23)
9 verbose stack     at Promise._settlePromiseFromHandler (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleasepromise.js:512:31)
9 verbose stack     at Promise._settlePromise (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleasepromise.js:569:18)
9 verbose stack     at Promise._settlePromise0 (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleasepromise.js:614:10)
9 verbose stack     at Promise._settlePromises (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleasepromise.js:693:18)
9 verbose stack     at Async._drainQueue (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleaseasync.js:133:16)
9 verbose stack     at Async._drainQueues (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleaseasync.js:143:10)
9 verbose stack     at Immediate.Async.drainQueues (C:Program Filesnodejsnode_modulesnpmnode_modulesbluebirdjsreleaseasync.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:UsersXXXXX
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 ]

你知道是什么导致了这个问题吗?谢谢

此配置对我有效:

方法1(命令行):

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

方法2(编辑节点目录文件):

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:UsersJack.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

解决了它。在我花了一点时间研究代理问题后,发现我的错误是设置了3个代理变量:proxyhttp proxyttps proxy

(注意:我在stackoverflow上读到我应该设置http proxy,但这是错误的)

删除http代理为我解决了这个问题。

设置npm-proxy和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/

尝试将npm注册表的URL设置为http而不是https。你可以看看这个答案。

如果您已经配置了Proxy和Still,则无法使用npm命令进行安装。您可以尝试以下命令。你似乎需要清理一些东西——这将解决问题。

npm cache verify

这些步骤对我有效

编辑.npmrc文件在行下方添加

proxy=http://username:password@proxyaddress:portno
https-proxy=http://username:password@proxyaddress:portno

对我有用的东西如下,问题:在"C:\Users*用户名*.npmrc"中定义的注册表是错误的。需要更新npm配置注册表。

步骤1解决方案:从"C:\Users*用户名*.npmrc"文件中删除了注册表项。

步骤2在步骤1之后,我得到了以下错误

npm install-g@angular/clinpm 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不再支持其自签名证书。然而,推荐的修复程序对我来说失败了。

解决方案:打开命令提示符,然后运行以下命令。SETLOCALSET npm_config_strict-sl=falsenpm安装npm-g--ca=nullnpm—版本端局部

步骤3现在>npm install-g@angular/cli运行一切正常。

要在办公室中配置代理,

npm config set proxy http://user:password@proxy.companyname.com:port/
npm config set https-proxy http://user:password@proxy.companyname.com:port/

最新更新