摘要:本文介绍如何使用搭建私有仓库,以及使用时如何映射到本地目录,方便简单对仓库进行各种操作。其次,创建目录,并添加的配置文件。当需要把某个项目发布到私有库时,直接。使用包名,即可安装私有包了。
本文介绍如何使用 verdaccio
搭建私有npm仓库,以及使用 docker
时如何映射到本地目录,方便简单对仓库进行各种操作。系统环境是 Linux。
verdaccio
是一个开源的轻量的私有 npm proxy registry
(npm 代理资源库),安装使用都非常方便。
forked自 sinopia@1.4.0
。
npm / yarn
进行全局安装Node.js v12+
npm 4.x+ 或yarn
全局安装
npm install -g verdaccioyarn global add verdaccio
启动
verdaccio或者使用 pm2 start verdaccio
使用浏览器访问web服务,端口号4873,http://0.0.0.0:4873
,访问成功就可以了。
docker
镜像安装安装 docker
,略
在 docker
下安装 verdaccio
镜像
使用如下命令即可:
docker pull verdaccio/verdaccio
安装镜像成功:
运行 verdaccio
,使用 docker
命令运行镜像,创建 verdaccio
容器
// 名称verdaccio, 端口 4873docker run -it --name verdaccio -p 4873:4873 verdaccio/verdaccio
启动容器成功:
启动成功以后,实际上就可以在浏览器访问了,http://0.0.0.0:4873
。
接下来先介绍几个操作容器的 docker
命令。
docker
操作容器的部分命令
新建并启动:docker run CONTAINER
启动停止的容器:docker start CONTAINER_ID
查看容器:docker container ls (docker ps)
停止容器:docker stop CONTAINER_ID
删除容器:docker rm CONTAINER_ID
映射本地目录
首先,创建 /home/verdaccio
目录,以下在该目录下操作。
其次,创建 conf
目录,并添加 verdaccio
的 config.yaml
配置文件。
接着处理映射目录,一般有以下两种方式:
直接映射本地目录,启动 verdaccio
docker run -it --name verdaccio -p 4873:4873 -v /home/verdaccio/storage:/verdaccio/storage -v /home/verdaccio/conf:/verdaccio/conf -v /home/verdaccio/plugins:/verdaccio/plugins verdaccio/verdaccio
-v:容器目录映射到本地目录
或者使用 docker-compose
启动
添加 docker-compose.yml
文件,使用 docker-compose up
命令启动
version: "3"services: verdaccio: image: verdaccio/verdaccio container_name: "verdaccio" network--mode: "bridge" environment: - VERDACCIO_PORT=4873 ports: - "4873:4873" volumes: - "/home/verdaccio/storage:/verdaccio/storage" - "/home/verdaccio/conf:/verdaccio/conf" - "/home/verdaccio/plugins:/verdaccio/plugins" network_mode: "bridge"
注意: 本地目录 /home/verdaccio/storage
需要设置权限,不然会因为权限问题而导致操作失败。
chown -R 10001:65533 /home/verdaccio/storage
本地目录映射成功后,会简化很多操作,比如:
在 /home/verdaccio
目录下会创建 storage
目录,如果发布了包,则在此目录下的 data
中能找到对应的包文件夹,可以查看所有上传的npm包,此处也可以直接删除该包;
也会在 conf
映射到配置文件,方便我们需要时修改配置信息。
拷贝 verdaccio
配置文件
如果不想做本地目录映射,也可以使用如下命令,拷贝出 verdaccio
镜像的配置文件。
docker cp
:在容器和本地文件系统之间,拷贝文件或文件夹。
docker cp verdaccio:/verdaccio/conf/config.yaml /home
verdaccio
安装启动成功后,就可以直接网络访问。
当页面出现下图所示,就表示私有库搭建成功,后续就可以进行私有包的发布下载。
有了私有库以后,就可以在其上发布 npm
包。
但初始化时需要先添加用户,设置用户名和密码等,然后就可以直接发包了。
添加用户
npm adduser --registry http://0.0.0.0:4873/
输入用户名、密码和邮箱。
publish
当需要把某个项目发布到私有库时,直接 publish
。
npm publish --registry http://0.0.0.0:4873/
发布成功后,刷新页面,就能看到最新发布的包。
在项目目录下增加 .npmrc
文件,指定仓库地址。
registry=http://0.0.0.0:4873/
使用 npm install 包名
,即可安装私有包了。
常用配置如下:
# 素有包的保存路径 storage: /verdaccio/storage/data # 插件的保存路径 plugins: /verdaccio/plugins # 通过web访问 web: title: Verdaccio # 账号密码文件,初始不存在 auth: htpasswd: file: /verdaccio/storage/htpasswd # max_users:1000 # 默认1000,允许用户注册数量。为-1时,不能通过 npm adduser 注册,此时可以直接修改 file 文件添加用户。 # 本地不存在时,读取仓库的地址 uplinks: npmjs: url: https://registry.npmjs.org # 对包的访问操作权限,可以匹配某个具体项目,也可以通配 # 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 }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/123992.html
摘要:前端开发过程中,少不了自己封装一些通用的包,但又不想放在公共的平台,所以搭建一个私有的仓库是很有必要的。在这里简单介绍如何使用在环境下的配置。轻量级私有代理注册表。加上,那就真的无敌方便了,搭建一个私有仓库轻轻松松几分钟搞定。前端开发过程中,少不了自己封装一些通用的包,但又不想放在公共的平台,所以搭建一个npm私有的仓库是很有必要的。 在这里简单介绍如何使用 verdoccio 在docke...
摘要:前言利用搭建私服工具提取码步骤拉取镜像步骤运行镜像,生成一个容器出现下面信息,表示成功步骤通过虚拟机地址端口进行访问步骤配置其他略发布包下载包 前言 利用Docker, verdaccio 搭建npm私服 工具: 1. Docker 2. verdaccio: A lightweight private npm proxy registry 3. xhsell: https://...
Server server:all developers can have access to it, the server environment is windows. We need to use the npm command to install verdaccio, so we have to have a node environment. step1: install the no...
摘要:原因我搭私库的原因很简单,目前正在开发一个组件库,提供给公司内部使用,我不想去注册,也不想等待的审核,只想要有个仓库快速测试发布自己的包。我一般会通过启动,原因很简单,关闭窗口后,服务不会停掉,并且能很好的管理我们启动的服务。 原因 我搭私库的原因很简单,目前正在开发一个组件库,提供给公司内部使用,我不想去注册npm,也不想等待npm的审核,只想要有个仓库快速测试发布自己的npm包。 ...
阅读 3043·2021-11-19 11:31
阅读 3127·2021-09-02 15:15
阅读 984·2019-08-29 17:22
阅读 1057·2019-08-29 16:38
阅读 2462·2019-08-26 13:56
阅读 832·2019-08-26 12:16
阅读 1434·2019-08-26 11:29
阅读 928·2019-08-26 10:12