我一直在尝试将npm配置为连接到私有注册表(Nexus)。不幸的是,nexus是由Webseal保护的。我已经在npm配置中设置了注册表,当我执行npm登录时,我会得到以下内容
npm ERR! registry error parsing json
npm WARN adduser Incorrect username or password
npm WARN adduser You can reset your account by visiting:
npm WARN adduser
npm WARN adduser https://npmjs.org/forgot
npm WARN adduser
npm ERR! Unexpected token < in JSON at position 0
npm ERR! <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
npm ERR! <!-- Copyright (C) 2000 Tivoli Systems, Inc. -->
npm ERR! <!-- Copyright (C) 1999 IBM Corporation -->
npm ERR! <!-- Copyright (C) 1998 Dascom, Inc. -->
npm ERR! <!-- All Rights Reserved. -->
npm ERR! <!--
npm ERR! This is a WebSEAL error message template file. It is used
npm ERR! by the WebSEAL server to build a response when a particular
npm ERR! error occurs. This file can be modified as appropriate.
npm ERR!
npm ERR! Error details:
npm ERR!
npm ERR! * Code: 0x38cf0425
npm ERR! * Text: Unauthorized
npm ERR!
npm ERR! -->
npm ERR! <html>
npm ERR! <head>
npm ERR! <meta http-equiv="Content-Type" content= "text/html; charset=UTF-8">
npm ERR! <!-- Enter Page Title -->
npm ERR! <title>Login Required</title>
npm ERR! </head>
npm ERR! <body bgcolor="#FFFFFF">
npm ERR!
npm ERR! <!-- Enter Message Header -->
npm ERR! <h1><font color="#FF0000">Login Required</font></h1>
npm ERR!
npm ERR! <p><!-- Enter Error Message -->
npm ERR! You must login before you can access the resource you have requested.
npm ERR!
npm ERR! <BR><BR><BR>
npm ERR!
npm ERR! <!-- Provide Error Explanation -->
npm ERR! <H4>Explanation</H4>
npm ERR! <P>The resource you have requested is secured by Access Manager WebSEAL, and in
npm ERR! order to access it, you must first login.
npm ERR! </P>
npm ERR!
npm ERR! <BR><BR><BR>
npm ERR!
npm ERR! <!-- Provide Possible Solution -->
npm ERR! <H4>Solutions</H4>
npm ERR! <P>Log in with a valid account.
npm ERR! </P>
npm ERR!
npm ERR! <br>
npm ERR! <br>
npm ERR! <br>
npm ERR! <!-- Enter Link -->
npm ERR! <a href="/">[BACK BUTTON]</a></p>
npm ERR! </body>
npm ERR! </html>
npm ERR!
npm ERR!我确实使用了webseal的用户名和密码。
发布于 2017-07-12 04:27:35
好的。这里至少有一个部分的答案。所需要的是具有代理设置的webpack开发服务器。这是一个webpack.config.js的代码片段。
// If you have to go though a corperate proxy the following is needed.
var HttpsProxyAgent = require('https-proxy-agent');
// corporate proxy to connect to
var proxyServer = 'http://<proxyserver>:<proxyport/';
var proxyAgent = new HttpsProxyAgent(proxyServer);
// Webseal auth, must be in the form of <devUser>:<devPassword>
// I know that having an unencrypted password is HORRIBLE!!!
// Working on something better
var auth = '<websealuser>:<websealpassword';
proxy: {
'/nexus/**': {
target: 'https://<target>/',
secure: false,
'changeOrigin': true,
'auth': auth,
// Comment out the following line if not going through a corperate proxy
agent: proxyAgent,
logLevel: 'debug',
toProxy: true}
然后,您必须将npm的注册表值设置为localhost:8080 (或者设置为webpack开发服务器提供服务的任何值。
我还建议将strict-ssl设置为false。
启动webpack开发服务器,并尝试npm install命令。它应该将请求代理到私有存储库。
我目前在下载tarball时遇到了超时问题,但我看到了元数据。
https://stackoverflow.com/questions/44810802
复制相似问题