欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用sinopia 搭建私有npm服務(wù)器的教程

 更新時間:2017年11月22日 08:43:20   作者:iOS122  
下面小編就為大家分享一篇使用sinopia 搭建私有npm服務(wù)器的教程,具有很好的參考價值,希望對大家有所幫助

簡介

效果展示

使用 sinopia 的好處是,node系的工程師,內(nèi)部協(xié)作時,使用自有 npm 包,會非常方便;另外,sinopia,會緩存已經(jīng)下載過的包,可以在相當(dāng)程度上,加速 npm install 相關(guān)命令的執(zhí)行。

工作中,確實(shí)有需要用到 sinopia 來作為私有 npm 服務(wù)器的場景。原來一直在自己電腦上開啟 sinopia。這樣做最大的問題是,sinopia 后臺一直開著,會越來越耗費(fèi)資源,電腦最后會變得很卡。偶爾,還會因?yàn)橥涢_啟或關(guān)閉 sinopia,帶來各種不便利。

今天我試著直接在樹莓派上搭建一個 sinopia 服務(wù)。最終實(shí)現(xiàn)的效果較為完整,基本滿足需要了。包含用戶權(quán)限管理,外網(wǎng)使用自定義域名訪問,sinopia服務(wù)開機(jī)自啟等特性。

注意:以下 shell 命令,默認(rèn)在樹莓派的shell中執(zhí)行,而不是在本機(jī)電腦上。

安裝最新長期支持版 node 環(huán)境

樹莓派自帶的 node 環(huán)境是 v4.8.2,有必要升級下。

安裝 nvm

建議安裝 nvm,以方便管理多個版本的 node 環(huán)境。

# 安裝 nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash

# 重啟shell

# 驗(yàn)證 nvm 安裝
command -v nvm

使用 nvm 安裝最新長期支持版 node 環(huán)境

# 安裝 Node
nvm install --lts

#驗(yàn)證安裝 --> v8.9.1
node -v

安裝和配置 sinopia

安裝 sinopia

# 安裝
npm install -g sinopia

# 驗(yàn)證是否安裝成功 --> 這一步會輸出自動生成的配置文件路徑等信息。
sinopia

解決端口 4873 占用問題

sinopia 啟動時,默認(rèn)使用 4873端口,可能會遇到端口沖突問題。

# 安裝 lsof 命令
sudo apt-get update
sudo apt-get install lsof

# 查看端口占用進(jìn)程 PID
lsof -i :4873

# 殺死占用 4873 端口的進(jìn)程。4649,要換為實(shí)際的 PID。
kill -9 4649

注冊一個默認(rèn)賬戶

為了提高安全性,我們稍后會禁用 sinopia 的用戶注冊功能,所以先注冊一個默認(rèn)的 sinopia 賬戶。需要在當(dāng)前 shell 中執(zhí)行 sinopia 命令開啟服務(wù)之后,再重新打開一個 shell 執(zhí)行:

npm set registry http://localhost:4873/
npm adduser --registry http://localhost:4873/

用戶名,密碼,郵箱等,要記牢,適當(dāng)設(shè)置的復(fù)雜點(diǎn)。

### 升級安裝 vim

感覺樹莓派自帶的 vim 不太好使了,我也順便升級了下。

```
# 安裝 vim
sudo apt-get update
sudo apt-get install vim

# 配置支持vim中鼠標(biāo)右鍵復(fù)制
vim ~/.vimrc
```

在 .vimrc 此文件中增加如下一行:

shell set mouse=v

配置 sinopia

配置文件路徑可以在執(zhí)行 sinopia 命令時,從其輸出中查看,一般應(yīng)是 /home/pi/.config/sinopia/config.yaml

基于我的使用使用經(jīng)驗(yàn)和文檔說明,主要配置了以下內(nèi)容:

max_users: -1 :禁用注冊。

*npmjs: url: https://registry.npm.taobao.org* : 設(shè)置 npm 鏡像為淘寶源,一來可以加速 npm 公共包的安裝,二來借助淘寶源的只讀特性,避免誤操作發(fā)布私有 npm 包到外網(wǎng)上。

access: $authenticated:禁止匿名用戶訪問。配置后,未登錄用戶看不到 sinopia 上私有包的任何信息。

max_body_size: '200mb':這樣設(shè)置,會提高安裝超級 npm 包的成功率,比如 react-native 。

完整配置內(nèi)容如下。如果你不是在樹莓派上配置,請把 /home/pi 替換為自己真實(shí)的用戶路徑名。

#
# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/rlidwka/sinopia/tree/master/conf
#

# path to a directory with all packages
storage: /home/pi/.local/share/sinopia/storage

auth:
 htpasswd:
  file: ./htpasswd
  # Maximum amount of users allowed to register, defaults to "+inf".
  # You can set this to -1 to disable registration.
  max_users: -1

# a list of other known repositories we can talk to

uplinks:
 npmjs:
  url: https://registry.npm.taobao.org

packages:
 '@*/*':
  # scoped packages
  access: $authenticated
  publish: $authenticated

 '*':
  # allow all users (including non-authenticated users) to read and
  # publish all packages
  #
  # you can specify usernames/groupnames (depending on your auth plugin)
  # and three keywords: "$all", "$anonymous", "$authenticated"
  access: $authenticated

  # allow all known users to publish packages
  # (anyone can register by default, remember?)
  publish: $authenticated

  # if package is not available locally, proxy requests to 'npmjs' registry
  proxy: npmjs

# log settings
logs:
 - {type: stdout, format: pretty, level: http}
 #- {type: file, path: sinopia.log, level: info}

max_body_size: '200mb'

可以在本地編輯器中修改好配置,然后直接復(fù)制到樹莓派上:

# 打開配置文件
vim /home/pi/.config/sinopia/config.yaml

使用粘貼命令。直接粘貼,格式會錯亂。

:set paste
i
# 右鍵粘貼即可。

配置frpc 遠(yuǎn)程訪問

關(guān)于 frp 的配置問題,詳見:【小技巧解決大問題】使用 frp 突破阿里云主機(jī)無彈性公網(wǎng) IP 不能用作 Web 服務(wù)器的限制。此處只貼出 frpc 的關(guān)鍵配置變更:

[web-sinopia]
type = http
local_port = 4873
subdomain = sinopia

使用 Systemd 實(shí)現(xiàn) sinopia 服務(wù)開機(jī)自啟

樹莓派,默認(rèn)是帶有 Systemd 的,直接使用即可:

sudo vim /usr/lib/systemd/system/sinopia.service

sinopia.service 具體內(nèi)容如下,其中/home/pi/.config/sinopia/config.yaml 要替換為自己的 config.yaml 地址:

[Unit]
DescrIPtion=sinopia
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/home/pi/.nvm/versions/node/v8.9.1/bin/sinopia /home/pi/.config/sinopia/config.yaml
ExecStop=/bin/kill $MAINPID
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

啟動 sinopia 并設(shè)置開機(jī)啟動:

systemctl enable sinopia
systemctl start sinopia
systemctl status sinopia

其他可能有用的命令

# 禁用服務(wù)
systemctl disable sinopia

# 重新啟動服務(wù)
systemctl restart sinopia

在另一臺電腦上使用 sinopia 私有 npm 服務(wù)器功能

假定,最終的 sinopia 服務(wù)器的外網(wǎng)地址是: *http://sinopia.example.com*

真正想使用,需要在終端中配置下:

npm set registry http://sinopia.example.com
npm adduser --registry http://sinopia.example.com
npm login

配置完畢后,你可以試著發(fā)布一個私有 npm 包:

# 在某個文件夾初始化一個新的 npm 包
npm init

# 發(fā)布到私有 sinopia 服務(wù)器:
npm publish

發(fā)布成功后,在瀏覽器中登錄 *http://sinopia.example.com*,刷新頁面,應(yīng)該就能看到自己剛發(fā)布的那個包了。

注意,其他用戶在使用私有庫上的包時,也應(yīng)該先登錄,否則會報錯:

unregistered users are not allowed to access package

以上這篇使用sinopia 搭建私有npm服務(wù)器的教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 大數(shù)據(jù)平臺使用搭建腳本一鍵安裝OS

    大數(shù)據(jù)平臺使用搭建腳本一鍵安裝OS

    本文給大家分享的是如何在大數(shù)據(jù)平臺使用腳本來實(shí)現(xiàn)一鍵安裝定制OS,并給大家附上了腳本源碼,有需要的小伙伴可以參考下
    2018-03-03
  • VScode連接遠(yuǎn)程服務(wù)器踩坑實(shí)戰(zhàn)記錄(新版離線vscode-server安裝)

    VScode連接遠(yuǎn)程服務(wù)器踩坑實(shí)戰(zhàn)記錄(新版離線vscode-server安裝)

    本文主要介紹了如何使用VScode連接遠(yuǎn)程服務(wù)器,并對離線安裝vscode-server進(jìn)行了詳細(xì)的操作步驟說明,其中包括VScode擴(kuò)展的安裝與配置,vscode-server的離線下載,文件的解壓縮和移動,以及VScode的一些更新設(shè)置,能夠幫助讀者更好地理解和掌握VScode連接遠(yuǎn)程服務(wù)器的方法
    2024-10-10
  • 教你搭建dns服務(wù)器(圖文教程)

    教你搭建dns服務(wù)器(圖文教程)

    這篇文章主要介紹了搭建dns服務(wù)器的圖文教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • rsync @ERROR: chdir failed 的解決方法

    rsync @ERROR: chdir failed 的解決方法

    這篇文章主要介紹了rsync @ERROR: chdir failed 的解決方法,需要的朋友可以參考下
    2015-01-01
  • Redis服務(wù)器筆記

    Redis服務(wù)器筆記

    redis是一個高性能的key-value存儲系統(tǒng),能夠作為緩存框架和隊(duì)列。下面通過本文給大家分享Redis服務(wù)器的筆記,感興趣的朋友一起看看吧
    2017-09-09
  • TCP Wrappers防火墻介紹與封鎖IP地址的方法

    TCP Wrappers防火墻介紹與封鎖IP地址的方法

    Tcp_Wrappers是一個用來分析TCP/IP封包的軟件,類似的IP封包軟件還有iptables,linux默認(rèn)都安裝了此軟件,作為一個安全的系統(tǒng)
    2012-07-07
  • 淺析NFS服務(wù)器原理以及搭建配置部署步驟

    淺析NFS服務(wù)器原理以及搭建配置部署步驟

    本文對NFS服務(wù)器原理作了簡要的分析,對NFS服務(wù)器的搭建配置步驟作了詳細(xì)的圖文描述,有需要的朋友可以借鑒參考下,希望可以對你有所幫助
    2021-08-08
  • git分支管理_動力節(jié)點(diǎn)Java學(xué)院整理

    git分支管理_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了git分支管理的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 刀片服務(wù)器五大誤區(qū)解讀

    刀片服務(wù)器五大誤區(qū)解讀

    人總是愿意用挑剔的目光來看到新生事物,在對待刀片效勞器的問題就是如此,有些人對于一些反復(fù)介紹的技術(shù)視而不見,仍然強(qiáng)加給刀片效勞器一些莫須有的罪名,這些錯誤正影響著刀片服務(wù)器的推廣和應(yīng)用。
    2009-09-09
  • 0到1分析美團(tuán)端側(cè)cdn容災(zāi)解決方案

    0到1分析美團(tuán)端側(cè)cdn容災(zāi)解決方案

    作為業(yè)務(wù)研發(fā),你是否遇到過因?yàn)?CDN?問題導(dǎo)致的業(yè)務(wù)圖片加載失敗,頁面打開緩慢,頁面布局錯亂或者頁面白屏?你是否又遇到過某些區(qū)域?CDN?域名異常導(dǎo)致業(yè)務(wù)停擺,客訴不斷,此時的你一臉茫然,不知所措,這篇文章為大家從0到1分析美團(tuán)端側(cè)cdn容災(zāi)解決方案
    2022-01-01

最新評論