nexus 純小白文,如有雷同,大概率我參考了你的文檔。
1.在本地運行nexus
附上下載鏈接:Nexus Repository OSS 下載鏈接
附上文檔鏈接:Nexus Repository OSS 文檔鏈接
有幾個值得注意的是
我的 系統為 64位 win 7,平時只配置了java的基本環境,沒有配置編譯環境。很尷尬,配置javac耽誤了我一點時間。需要的同學,在運行之前 需要配置一下jre環境。
我下載的是 nexus-3.5.0-02 這個版本。事實證明在win下雖然看起來一副人畜無害的樣子,似乎可以直接點擊安裝,但是事實上,嘖嘖嘖。
這里沒有好好閱讀文檔,也消耗了我的一些時間,下面放出win 下正確啟動方法
// 在 \nexus-3.5.0-02\bin 目錄下執行
$ nexus.exe /run
-
這里經測試 用win自帶的cmd,和budun都可以比較好的啟動,用git bash則啟動不是很好
Paste_Image.png
啟動之后默認地址為 localhost:8081, 默認賬號密碼 admin/ admin123
Nexus Repository Manager 中添加 npm
如果點擊:
這里有三個類型的npm選項:
文檔中對這三個類型的倉庫有詳細的解釋:
附上某歌翻譯:
Proxying npm Registries
為了減少開發人員和CI服務器的重復下載量并提高下載速度,您應該對托管在https://registry.npmjs.org上的注冊表進行代理。 默認情況下,npm直接訪問此注冊表。 您還可以代理您需要的任何其他注冊表。
要代理外部npm注冊表,您只需創建一個新的npm(代理),如“存儲庫管理”中所述。
最小配置步驟是:
- 定義名稱
- 定義遠程存儲的URL,例如https://registry.npmjs.org
- 選擇存儲的Blob存儲
Private npm Registries
私人npm注冊表可用于上傳您自己的軟件包以及第三方軟件包。 您可以通過在存儲庫管理器中設置npm格式的托管存儲庫來創建私有的npm注冊表。 為了這些目的,建立兩個獨立的托管存儲庫是一個很好的做法。
要創建具有npm格式的托管存儲庫,只需創建一個新的npm(托管),如“存儲庫管理”中所述。
最小配置步驟是:
- 定義名稱
- 選擇存儲的Blob存儲
隨著軟件包從存儲庫部署或刪除,npm注冊表信息將立即更新。
Grouping npm Registries
存儲庫組是將所有npm注冊表存儲庫從存儲庫管理器公開給您的用戶的推薦方式,而不需要任何其他客戶端配置。存儲庫組允許您將多個代理和托管存儲庫的聚合內容公開為一個URL到npm和其他工具。這可以通過創建一個新的npm(組),如“存儲庫管理”中所述,用于npm存儲庫。
最小配置步驟是:
- 定義名稱
- 選擇存儲的Blob存儲
- 以所需的順序將npm存儲庫添加到成員列表中
典型的有用的示例是將代理存儲庫分組:代理npm注冊表,npm托管存儲庫與內部軟件包和另一個npm托管存儲庫與第三方軟件包。
使用存儲庫組的URL作為客戶端工具中的npm存儲庫URL,您可以使用一個URL訪問所有三個存儲庫中的軟件包。添加的任何新軟件包以及添加到組中的任何新存儲庫將自動可用。
- 創建 Proxying npm Registries 代理倉庫
- 創建 Hosted npm Registries 代理倉庫
- 創建 Grouping npm Registries 倉庫
需要注意的是組倉庫要把之前的 proxy 和 hosted 都添加上。
我的目錄對應為 mytest/myhost/mygroup
在home目錄下, 的.npmrc文件中添加 registry = http://localhost:8081/repository/npm-all/ 。這個路徑要和自己的路徑一致,并且最后的rep名要和group相同。
win下 home路徑:
這時嘗試一下
// 查看一下 是否從本地服務器中下載
$ npm -loglevel info install grunt
此時可以驗證一下 是否依賴走了代理:
設置權限
把這個選項拖到右邊就可以了
在admin之外可以重新設置一個賬號,以及權限
// 使用
$ npm login –registry=http://localhost:8081/repository/mygroup
// 進行登陸,需要填寫賬號、密碼以及郵箱。
發布到hosted
我和原教程不一樣的是:我發布到本地hosted, 而不是直接到npm社區,這里需要注意的是 通過proxy是可以直接發布到npm社區的,使用的是社區的賬號密碼,這個需要提前申請
要發布的模塊,必須保證在根目錄下有package.json文件,否則會報錯。
pachage.json文件內容比較隨意,如果比較懶 可以用 npm init 直接自動生成。
{
"name": "myhost",
"version": "1.0.0"
}
然后執行發布命令:
$ npm publish –registry http://localhost:8081/repository/myhost
然后我遇到了報錯,按照報錯執行
$ npm adduser –registry http://localhost:8081/repository/myhost
這里值得注意的是, adduser的時候要指明是哪個rep,要不就會add到默認的.npmrc 里添加的 rep中
添加完用戶之后,再執行發布命令就ok了。
package.json可以指定name 和version并且可以添加發布路徑的配置:
{
"name": "intro",
"version": "1.0.0",
"publishConfig" : {
"registry" : "http://localhost:8081/repository/myhost/"
}
}
這樣的話發布直接用 npm publish就可以了。
發布之后可以在 系統中的 左側browse 中的assets中看到上傳的資源
group 中可以同時看到 proxy 和 hosted 的資源, proxy會存下第一次下載過的目錄,之后再下載時走的是代理,hosted存的是本地上傳的包資源。
然后可以在本地下載一下剛才上傳到hosted的包:
以上,為所有內容。
參考: npm 私服(上) 、 npm 私服(下) 、 nexus搭建npm私服
感謝以上朋友的文檔, 內容侵刪。