nexus 上搭建npm私有伺服器
nexus 純小白文,如有雷同,大概率我參考了你的文件。
1.在本地執行nexus
附上下載連結:Nexus Repository OSS 下載連結
附上文件連結:Nexus Repository OSS 文件連結
有幾個值得注意的是
-
我的 系統為 64位 win 7,平時只配置了java的基本環境,沒有配置編譯環境。很尷尬,配置javac耽誤了我一點時間。需要的同學,在執行之前 需要配置一下jre環境。
-
我下載的是 nexus-3.5.0-02 這個版本。事實證明在win下雖然看起來一副人畜無害的樣子,似乎可以直接點選安裝,但是事實上,嘖嘖嘖。
Paste_Image.png
這裡沒有好好閱讀文件,也消耗了我的一些時間,下面放出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
如果點選:
Paste_Image.png
這裡有三個型別的npm選項:
Paste_Image.png
文件中對這三個型別的倉庫有詳細的解釋:
Paste_Image.png
附上某歌翻譯:
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 代理倉庫
Paste_Image.png
- 建立 Hosted npm Registries 代理倉庫
Paste_Image.png
- 建立 Grouping npm Registries 倉庫
需要注意的是組倉庫要把之前的 proxy 和 hosted 都新增上。
Paste_Image.png
我的目錄對應為 mytest/myhost/mygroup
在home目錄下, 的.npmrc檔案中新增 registry = http://localhost:8081/repository/npm-all/ 。這個路徑要和自己的路徑一致,並且最後的rep名要和group相同。
win下 home路徑:
Paste_Image.png
這時嘗試一下
// 檢視一下 是否從本地伺服器中下載
$ npm -loglevel info install grunt
圖片我抄的,我自己的沒截圖
此時可以驗證一下 是否依賴走了代理:
Paste_Image.png
設定許可權
把這個選項拖到右邊就可以了
Paste_Image.png
在admin之外可以重新設定一個賬號,以及許可權
Paste_Image.png
// 使用
$ npm login –registry=http://localhost:8081/repository/mygroup
// 進行登陸,需要填寫賬號、密碼以及郵箱。
Paste_Image.png
釋出到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
Paste_Image.png
然後我遇到了報錯,按照報錯執行
$ npm adduser –registry http://localhost:8081/repository/myhost
這裡值得注意的是, adduser的時候要指明是哪個rep,要不就會add到預設的.npmrc 裡新增的 rep中
Paste_Image.png
新增完使用者之後,再執行釋出命令就ok了。
Paste_Image.png
package.json可以指定name 和version並且可以新增發布路徑的配置:
{
"name": "intro",
"version": "1.0.0",
"publishConfig" : {
"registry" : "http://localhost:8081/repository/myhost/"
}
}
這樣的話釋出直接用 npm publish就可以了。
釋出之後可以在 系統中的 左側browse 中的assets中看到上傳的資源
Paste_Image.png
group 中可以同時看到 proxy 和 hosted 的資源, proxy會存下第一次下載過的目錄,之後再下載時走的是代理,hosted存的是本地上傳的包資源。
然後可以在本地下載一下剛才上傳到hosted的包:
Paste_Image.png
以上,為所有內容。
參考: npm 私服(上) 、 npm 私服(下) 、 nexus搭建npm私服
感謝以上朋友的文件, 內容侵刪。
相關文章
- Verdaccio 搭建私有 NPMNPM
- 前端人員如何在linux伺服器上搭建npm私有庫前端Linux伺服器NPM
- NPM 私有倉庫的搭建NPM
- 搭建前端私有npm雜記前端NPM
- 使用nexus搭建npm本地私人倉庫NPM
- 使用verdaccio搭建私有npm倉庫NPM
- 使用verdaccio 搭建npm私有倉庫NPM
- 使用 docker + verdaccio 搭建npm私有倉庫DockerNPM
- NPM私有伺服器架設 FOR CentOSNPM伺服器CentOS
- Jenkins之Nexus搭建Maven私有倉庫教程JenkinsMaven
- 從模組化到NPM私有倉庫搭建NPM
- CPM - 輕量的NPM私有源程式搭建NPM
- 搭建npm私有映象倉庫,天下苦於npm build久矣NPMUI
- npm私有庫服務搭建及規範定製NPM
- 基於verdaccio的npm私有倉庫搭建和使用總結NPM
- Nexus私有maven庫部署和使用Maven
- Maven私有倉庫-Nexus3MavenS3
- Nexus的搭建
- 手把手搭建自己私有的MQTT伺服器,完成裝置上雲MQQT伺服器
- npm link 本地開發npm私有包神器NPM
- 在5分鐘內搭建企業內部私有npm倉庫NPM
- Android業務元件化之Gradle和Sonatype Nexus搭建私有maven倉庫Android元件化GradleMaven
- docker搭建Nexus搭建Maven私服DockerMaven
- 搭建私有git伺服器進行版本控制Git伺服器
- 如何搭建自己的pypi私有源伺服器伺服器
- 企業私有npm部署和實現npm釋出NPM
- 釋出/撤銷NPM私有包NPM
- 基於滴滴雲 CentOS 伺服器搭建 Nexus Maven 私庫CentOS伺服器Maven
- 5分鐘內3種方法搭建企業內部私有npm倉庫NPM
- 通過git安裝npm私有模組GitNPM
- 使用nexus搭建yum倉庫
- 搭建Maven和Nexus環境Maven
- 搭建私有云:OwnCloudCloud
- Geth搭建私有鏈
- 如何搭建npm包NPM
- npm私服 verdaccio 搭建NPM
- 十分鐘搭建自己的私有NuGet伺服器-BaGet伺服器
- 從搭建腳手架到在npm上釋出react元件NPMReact元件