nexus搭建npm私服

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xixiaoxie2/article/details/72492085

其实官方文档中都有写具体的步骤。不过对于nexus2和nexus3的区分不太好查阅。
英文文档地址:https://books.sonatype.com/nexus-book/3.3/reference/npm.html#_browsing_npm_registries_and_searching_modules
nexus2和nexus3的添加方式不完全一样。
一、nexus版本为2.x
1、在nexus中添加一个proxy类型的repository,作为npm外部库的代理。
这里写图片描述
这里我配置的是淘宝的npm库。经测试还是很靠谱的。
后面的设置默认或根据需要自行设置即可。
2、在nexus中添加一个hosted类型的repository,作为npm构件发布的仓库。
这里写图片描述
3、创建一个group,把上述两个库合并
这里写图片描述
4、和maven库一样,要在开发环境配置nexus仓库地址和用户认证:
配置仓库地址:npm config set registry http://localhost:8081/repository/npm-all/
执行该命令后在{USER}目录下会有一个隐藏文件.npmrc,里面有一行registry=……,如果是刚配置的地址就对了。
5、在任意目录下创建一个in.txt文件,里面直接写nexus访问的用户名:密码。
如:admin:admin123
不要有空行或空格等其他信息。
6、在in.txt目录下命令行执行
c:\certutil /encode in.txt out.txt
(Windows。certutil可能不在c盘根目录,根据自己的环境写就行)
执行后会在当前目录生成out.txt文件,内容是
—–BEGIN CERTIFICATE—–
YWRtaW46YWRtaW4xMjM=
—–END CERTIFICATE—–
第二行即为编码证书,把这串证书信息及你的邮箱信息添加到 .npmrc中:
[email protected]
always-auth=true
_auth=YWRtaW46YWRtaW4xMjM=
完整的.npmrc内容是:
//registry.npmjs.org/:_authToken=3e8279f2-f084-4965-a94b-fac59b52cfdb
registry=http://127.0.0.1:8081/repository/npmtest/
//127.0.0.1:8081/repository/npmtest/:_authToken=bc746e53-ac1b-3942-b93b-6323838167cf
[email protected]
always-auth=true
_auth=YWRtaW46YWRtaW4xMjM=
7、以上,完成了所有配置,可以使用npm publish测试一下了
二、nexus版本为3.x
官方文档说从nexus3开始增加了对npm的支持,其实也就是说nexus2并没有支持npm,我们是绕了个远路……
nexus3前三步与nexus2一样:创建proxy库、host库、group组
4、添加认证:按图示进入realms设置页,将npm Bearer Token Realm加入active即可。
这里写图片描述
到此,nexus3的配置就完成了。非常便捷。

注:
如果你配置的代理库是需要有证书认证的,那么也需要单独配置一下。否则可能会提示无法访问代理库。
(如何查看是否需要证书:在代理库网页(如https://registry.npm.taobao.org/)右键,选择“查看页面信息”,然后选择“安全”,如果有证书的话就可以在这里看到。不同浏览器方式略有出入。)
nexus3:进入repository配置页面,勾选下图所示选项即可。
这里写图片描述
nexus2:没有提供nexus truststore,我们只能手动将网页证书导入nexus所在服务器的java认证中:
1、下载网页证书并上传到nexus服务器。
2、进入服务器上的{JAVA_HOME}/jre/lib/security目录,执行命令:
keytool -import -alias cacerts -keystore cacerts -file {你的证书目录,如/software/abc.cer}
此时命令行会提示你输入cacerts证书库的密码,默认是changeit
导入后可用keytool -list查看是否导入成功。

猜你喜欢

转载自blog.csdn.net/xixiaoxie2/article/details/72492085