搭建内网npm缓存服务器
TOC | 目录
前端项目慢慢变大以后,等待编译过程就变得很无聊,为什么不能让他快一点呢?
Verdaccio 是一个 Node.js 开发的私有化 registry 代理,部署在内网后,Verdaccio 会代理所有 npm install 请求, 并将 node modules 缓存到本地, 下次再安装时将从本地直接获取, 项目CI/CD编译速度可以获得极大改观.
Install verdaccio
npm安装 node-gyp verdaccio, 如果已经安装过 node-pyg 则无需再次安装.
npm install --global node-gyp verdaccio --registry=https://registry.npm.taobao.org
Configuration
vim /root/.config/verdaccio/config.yaml
按照如下配置修改配置文件
storage: /root/.local/share/verdaccio/storage
plugins: ./plugins
web:
title: Verdaccio
auth:
htpasswd:
file: ./htpasswd
uplinks:
npmjs:
url: https://registry.npm.taobao.org
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
proxy: npmjs
middlewares:
audit:
enabled: true
logs:
- {type: stdout, format: pretty, level: http}
Start via supervisor
vim /nxdata/supervisord/verdaccio.ini
将 verdaccio 配置为自动启动.
[program:verdaccio]
command=verdaccio -l 172.17.51.54:4873
directory=/nxdata/www/somewhere
numprocs=1
stderr_logfile=/nxdata/logs/supervisor/verdaccio-stderr.log
stdout_logfile=/nxdata/logs/supervisor/verdaccio-stdout.log
stderr_logfile_maxbytes=1MB
stdout_logfile_maxbytes=1MB
redirect_stderr=true
autostart=true
autorestart=true
处理Nginx配置
新建一个 nginx 配置文件, 给其配置域名, 或直接使用内网 IP.
server {
listen 80;
server_name npm.nxdev.cn;
charset utf-8;
location / {
proxy_pass http://172.17.51.54:4873;
}
}
启动服务
supervisorctl reload
systemctl reload nginx
Usage
在内网其他机器上使用npm 安装依赖时, 指定 registry server
npm install --registry=http://npm.nxdev.cn
或直接设置全局配置
npm set registry http://npm.nxdev.cn
说明
Verdaccio 本地文件缓存存储位置:
/root/.local/share/verdaccio/storage
- END -
