搭建npm私服可以选用多个软件,博主选用verdaccio搭建,什么是Verdaccio呢?官方解释:Verdaccio 是一个 Node.js创建的轻量的私有npm proxy registry。简单来说,我们设计的组件库有隐私性,不方便上传npm,我们就可以部署一个Npm私有服务。
首先我们服务器上要装有docker。
verdaccio/verdaccio
,表示最新版本。docker search verdaccio
docker pull verdaccio/verdaccio
此时我们将verdaccio镜像拉取完毕,我们可以使用命令查看镜像
docker images
接下来开始做一些创建容器前的准备工作啦
-p
是指递归循环创建目录。在线编码网址mkdir -p /root/verdaccio/conf
mkdir -p /root/verdaccio/storage
chown -R 100:101 /root/verdaccio/
cd /root/verdaccio/conf
vi config.yaml
# 所有包的保存路径
storage: /verdaccio/storage/data
# 插件的保存路径
plugins: /verdaccio/plugins
# 通过web访问
web:
title: "Verdaccio"
# 账号密码文件,初始不存在
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
algorithm: md5 # 这里选择 md5 作为加密算法
# max_users: -1 # 不允许自由注册
# max_users:1000
# 默认1000,允许用户注册数量。为-1时,不能通过 npm adduser 注册,此时可以直接修改 file 文件添加用户。
# 本地不存在时,读取仓库的地址
uplinks:
npmjs:
url: https://registry.npmjs.org/
yarn:
url:https://registry.yarnpkg.com/
# 对包的访问操作权限,可以匹配某个具体项目,也可以通配
# access 访问下载;publish 发布;unpublish 取消发布;
# proxy 对应着uplinks名称,本地不存在,去unplinks里取
# $all 表示所有人都可以执行该操作
# $authenticated 已注册账户可操作
# $anonymous 匿名用户可操作
# 还可以明确指定 htpasswd 用户表中的用户,可以配置一个或多个。
packages:
'@*/*':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
# 服务器相关
sever:
keepAliveTimeout: 60
middlewares:
audit:
enabled: true
# 日志设定
logs: { type: stdout, format: pretty, level: http }
touch htpasswd
guilai:$apr1$ajqWS1jR$02HsYf6WZWPZkV9/slcM1
docker run -it
--name verdaccio
-p 4873:4873
-v /root/verdaccio/conf:/root/verdaccio/conf
-v /root/verdaccio/storage:/root/verdaccio/storage verdaccio/verdaccio
-p:端口映射(宿主机端口:容器端口,即将主机端口映射到容器端口
)
-v:容器目录映射到本地目录(宿主机文件目录:容器文件目录,将宿主机文件挂载到容器目录
)
-d:后台启动容器
-it:以交互式模式启动容易
–name:容器名称
yarn add nrm global
nrm add ceshiRegistry http:xxxxx:4873
nrm ls
nrm use ceshiRegistry
nrm del ceshiRegistry
npm adduser //设置了源为私有服务的源
npm adduser --registry http://xxxxxx:4873 //未设置源
npm publish //设置了源为私有服务的源
npm publish --registry http://xxxxxx:4873 //未设置源
发布后可以查看自己上传的组件库
方法1:设置安装源为私有服务的源
nrm use ceshiRegistry
方法2:新建.npmrc
文件
always-auth=true
registry=http://xxxxx:4873/
然后
npm install //安装的就是你设置的源