verdaccio || docker构建私有化npm仓库
公司内部部署npm私有库,这样会方便管理私有化npm仓库,目的主要还是出于安全考虑 私有化npm仓库,是局域网内才能安装,基本公司都会提供公司vpn,这样我们就可以居家办公了
前言
私有 npm 库,我想是每个团队都会实践和经历的一个阶段。实现私有 npm 的方式有很多种,例如基于私有 Git 仓库、基于 npm 官方提供的私有功能(付费)、Verdaccio 等等。但是,综合比较各种因素下来(不要钱、还好用),Verdaccio 都略胜前面两者。
一.前期准备
- node环境安装(node安装会自带npm,建议node版本不要低于8)
- nrm源管理器(安装源管理工具npm i -g nrm)
- verdaccio构建私有化npm的重要工具(安装Verdaccio:npm i -g verdaccio)
二.verdaccio安装,启动
- 全局安装verdaccio
npm i -g verdaccio
- 创建config.yaml文件,复制这些配置
# storage 已发布的包的存储位置
storage: ./storage
# plugins 插件所在的目录
plugins: ./plugins
# web 界面相关的配置
web:
title: Verdaccio
# auth 用户相关,例如注册、鉴权插件(默认使用的是 `htpasswd`)
auth:
htpasswd:
file: ./htpasswd
# uplinks 用于提供对外部包的访问,例如访问 npm、cnpm 对应的源
uplinks:
npmjs:
url: https://registry.npm.taobao.org
# packages 用于配置发布包、删除包、查看包的权限
# access 控制包的访问权限
# publish 控制包的发布权限
# unpublish 控制包的删除权限
# `$all`(所有人)、`$anonymous`(未注册用户)、`$authenticated`(注册用户)
packages:
'@*/*':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
# server 私有库服务端相关的配置
server:
keepAliveTimeout: 60
# middlewares 中间件相关配置,默认会引入 `auit` 中间件,来支持 `npm audit` 命令
middlewares:
audit:
enabled: true
# Verdaccio 是支持搜索功能的,它是由 `search` 控制的,默认为 `false`,所以这里我们需要开启它
search: true
# logs 终端输出的信息的配置
logs:
- { type: stdout, format: pretty, level: http }
# listen 设置自己的端口号
listen:
- 0.0.0.0:4873
- 在终端中输入
verdaccio命令启动 Verdaccio
verdaccio
终端会出现
此时就可以访问localhost:4873,就表示构建成功了
三.发布一个属于自己包
2. 想发布到本地的npm仓库中,就需要切换npm源
// 安装nrm管理源工具
npm i -g nrm
// 添加本地npm源
npm add localhost http://localhost:4873
// 查看源列表
nrm ls
// 切换源
nrm use localhost
只要看到这个*,就表示切换成功了
3. 发布属于自己的包,到npm私库中
// 登录刚刚注册的npm账号
npm login
// 出现
// Username(用户名)
// Password(密码)
// Email: (填写自己的邮箱,第一次登录会给你的邮箱发一个一次密码,登录邮箱查看填写就可以)
// 发布
npm publish
出现这样就表示发布成功了
四.Docker+Verdaccio搭建npm仓库
linux服务器下载快速安装docker
curl -fsSL get.docker.com -o get-docker.sh
- 下载完成后,可以
ls命令查看一下。已经存在的话,使用sh命令执行这个脚本
sh get-docker.sh
- 启动docker
systemctl start docker
- docker启动verdaccio
// 文件目录
--- home
--- verdaccio
--- conf
--- config.yaml
--- storage
--- plugins
// docker启动
V_PATH=/home/verdaccio; docker run -d -it --name verdaccio -p 4873:4873 \
-v $V_PATH/conf:/verdaccio/conf -v $V_PATH/storage:/verdaccio/storage \
-v $V_PATH/plugins:/verdaccio/plugins verdaccio/verdaccio
- 查看服务
docker ps
这就就表示成功了
这样部署在公司本机服务器上,公司内部就可以直接访问了
点赞 👍
通过阅读本篇文章,如果有收获的话,可以点个赞,这将会成为我持续分享的动力,感谢~