搭建
搭建使用verdaccio插件
以下環(huán)境:centOS 7
1、安裝node+npm
sudo yum -y install nodejs
或者官網(wǎng)直接下載包唠帝,解壓之后軟鏈bin下的執(zhí)行文件到 /usr/bin下(比較靠譜)
# 在你想放node的地方創(chuàng)建文件夾nodejs膏蚓,比如 /opt/nodejs
cd /opt/nodejs
# 去https://nodejs.org/dist/找到你想安裝的版本linux的tar.xz包,右鍵復(fù)制鏈接地址
wget https://nodejs.org/dist/v16.4.2/node-v16.4.2-linux-x64.tar.xz
# 解壓
xz -d node-v16.4.2-linux-x64.tar.xz
tar -xvf node-v16.4.2-linux-x64.tar
# 進(jìn)入目錄
cd node-v16.4.2-linux-x64
# 創(chuàng)建軟連接
ln -s /opt/nodejs/node-v16.4.2-linux-x64/bin/node /usr/bin/node
ln -s /opt/nodejs/node-v16.4.2-linux-x64/bin/npm /usr/bin/npm
ln -s /opt/nodejs/node-v16.4.2-linux-x64/bin/npx /usr/bin/npx
# 測試
node -v
npm -v
2兼呵、安裝verdaccio
npm i verdaccio -g
安裝成功之后可啟動verdaccio
verdaccio
如果出現(xiàn)command not found
的問題兔辅,可能是你的全局node_modules沒有在配置進(jìn)環(huán)境變量,輸入以下命令即可解決击喂。
echo -e "export PATH=$(npm prefix -g)/bin:$PATH" >> ~/.bashrc && source ~/.bashrc
啟動verdaccio
時(shí)可以看到配置文件所在位置维苔,vim 配置文件
底部加入listen:0.0.0.0:4873
即可
3、使用pm2
守護(hù)verdaccio
npm i pm2 -g
使用pm2
啟動verdaccio
時(shí)懂昂,需要找到verdaccio的全路徑
npm root -g # 獲取全局node_modules位置 如:/opt/nodejs/node-v16.4.2-linux-x64/lib/node_modules
pm2 start /opt/nodejs/node-v16.4.2-linux-x64/lib/node_modules/verdaccio/bin/verdaccio
4介时、安裝nginx
sudo yum install -y nginx
安裝完成之后nginx -v
測試是否成功
開啟機(jī)器的80端口,如果加https凌彬,則還需要開啟443端口
# 打開`nginx.conf`
vim /etc/nginx/nginx.conf
# 在http內(nèi)最下面添加
http{
...
server {
...
}
include /conf.d/*.conf; # 添加這一行沸柔,切記要分號!
...
}
保存后進(jìn)入conf.d文件夾
vim /etc/nginx/conf.d/npm.xxxx.com.conf
添加如下內(nèi)容
server {
listen 80;
listen 443 ssl;
server_name npm.xxxx.com;
# ssl配置與其他網(wǎng)站配置一樣
ssl_certificate /etc/nginx/ssl/xxxx.com_combined.crt;
ssl_certificate_key /etc/nginx/ssl/xxxx.com.key;
ssl_ciphers 'xxxxxxxxx';
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/npm.xxxx.com.access.log;
error_log /var/log/nginx/npm.xxxx.com.error.log;
# 下面是重點(diǎn)
location / {
# 真實(shí)發(fā)出請求的客戶端IP
proxy_set_header X-Real-IP $remote_addr;
# 記錄代理信息饿序,每經(jīng)過一級代理(匿名代理除外)勉失,代理服務(wù)器都會把這次請求的來源IP追加在X-Forwarded-For中
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# $host變量的值按照如下優(yōu)先級獲得:
# 請求行中的host.
# 請求頭中的Host頭部.
# 與一條請求匹配的server name.
proxy_set_header Host $host;
# 用于識別協(xié)議(HTTP 或 HTTPS),其中使用的客戶端連接到代理或負(fù)載平衡器一個(gè)真實(shí)的標(biāo)準(zhǔn)報(bào)頭
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://0.0.0.0:4873;
# off參數(shù)取消proxy_redirect從先前配置級別繼承的指令的效果
proxy_redirect off;
}
}
最后原探,nginx -t
沒問題的話乱凿,直接nginx -s reload
即可成功訪問顽素。(域名dns解析略過~)
刪除發(fā)布的包
cd /home/**/verdaccio/storage
rm -rf /要?jiǎng)h除的包名
刷新即可發(fā)現(xiàn)網(wǎng)頁上已經(jīng)沒有了