隨着代碼的積累,感覺有必要自己搭建一個npm服務,對自己的代碼庫進行管理。
爲什麼選sinopia,之前有 仁兄使用Kappa 搭建私有npm私有庫,看上去比較麻煩,還需要依賴CouchDB數據庫。參考 https://segmentfault.com/a/1190000000491162
我去強大的github上搜索了一下,發現了sinopia,純nodejs解決方案,不需要什麼依賴的軟件包。果然是簡單有效的辦法,於是根據教程嘗試了一下,基本沒遇到什麼坎就弄好了。
github地址:https://github.com/rlidwka/sinopia
首先安裝sinopia
$ npm install -g sinopia
啓動sinopia
$ sinopia
默認啓動端口4873,通過http://localhost:4873/可以瀏覽你上傳的包
在npm中使用新的服務,在通過npm安裝依賴包的時候服務器會優先使用服務上已經上傳的包,如果找不到會使用公共的npm registry,省去的來回切換的麻煩。
$npm set registry http://localhost:4873/
但這樣只能通過本機進行訪問,如何通過遠程可以訪問你的npm服務器呢?
看一下sinopia命令幫助
$ sinopia -h
通過-l可以指定主機和端口
重新啓動一下:
$ sinopia -l 100.100.100.100:8000
ip爲舉例,可以是你的主機的對外ip,這樣就可以通過ip來訪問你的npm服務器了
另外推薦一下管理registry的工具nrm
$ npm install -g nrm $ nrm add mynpm http://100.100.100.100:8000 $ nrm use mynpm
列出所有的本地registry
$ nrm ls
切換回公共的registry
$ nrm use npm
完成了服務器的搭建,我們就可以發佈自己的nodejs庫到服務器上了。
首先要創建一個用戶
$ npm adduser --registry http://100.100.100.100:8000
輸入用戶名,密碼,郵箱用戶創建完畢。
然後進入你要上傳的代碼目錄,執行初始化。
$ npm init
這個過程中要輸入項目名,版本號,作者,開源協議等信息,自動生成package.json文件。
初始化完成了執行發佈命令
$ npm publish
看到發佈成功的提示,ok,第一個包就這樣發佈成功了!
瀏覽器訪問http://100.100.100.100:8000可以看到我們剛剛發佈的包了,通過readme.md可添加包的使用說明和用例代碼。
接下來我們團隊會把自己之前積累的一些代碼逐步整理並形成npm包,放在npm服務器上並考慮開源。