nexus搭建npm私服

其實官方文檔中都有寫具體的步驟。不過對於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查看是否導入成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章