npm搭建私服
构建npm私服
构建私服有什么收益吗?
- 可以离线使用,你可以将npm私服部署到内网集群,这样离线也可以访问私有的包。
- 提高包的安全性,使用私有的npm仓库可以更好的管理你的包,避免在使用公共的npm包的时候出现漏洞。
- 提高包的下载速度,使用私有 npm 仓库,你可以将经常使用的 npm 包缓存到本地,从而显著提高包的下载速度,减少依赖包的下载时间。这对于团队内部开发和持续集成、部署等场景非常有用
如何搭建npm 私服
verdaccio
Verdaccio 是可以帮我们快速构建npm私服的一个工具
1npm install --global verdaccio
使用方式非常简单
1# 使用默认配置运行服务器
2verdaccio
3
4# 在端口5000上运行服务器
5verdaccio --listen 5000
6
7# 通过使用配置文件的不同绝对位置运行服务器
8verdaccio --config /home/user/verdaccio/config.yaml
基本命令
1#创建账号
2npm adduser --registry http://localhost:4873/
3
4# 发布npm
5npm publish --registry http://localhost:4873/
6
7#指定开启端口 默认 4873
8verdaccio --listen 9999
9
10# 指定安装源
11npm install --registry http://localhost:4873
12
13# 从本地仓库删除包
14npm unpublish <package-name> --registry http://localhost:4873
其他配置文件项配置文件
在企业级应用开发中,常常需要处理私有包的发布和管理。搭建 npm 私有服务器是一个理想的解决方案,它不仅能保证代码的私密性,还能提供更快的下载速度和更精细的权限设置。
搭建 npm 私有服务器的优势
保证代码私密性:在企业开发中,很多时候我们要发布的包是私有的。通过搭建私有服务器,我们可以更好地控制包的访问权限,确保代码的安全性。
下载速度更快:由于私有服务器通常在局域网内部,因此下载速度更快,能够提高开发效率。
权限设置利于维护:可以将发布的包做一些权限上的设置,例如指定哪些用户可以访问、发布和安装私有 npm 包,利于维护和管理。
Verdaccio——搭建 npm 私有仓库的利器
Verdaccio 的特点
-
轻量级:Verdaccio 采用 Node.js 编写,安装和运行起来非常快速。它不依赖于任何外部数据库,而是将数据存储在本地文件系统中。
-
简单的配置:Verdaccio 的配置非常简单,只需一个 YAML 文件即可。您可以轻松地指定用户权限、上游代理、缓存设置等。
-
缓存和代理:Verdaccio 可以作为上游 npm 注册表的代理,从而帮助减轻网络延迟和提高包的安装速度。同时,它还会缓存已经下载的包,以便在没有互联网连接的情况下也能正常工作。
-
访问控制:Verdaccio 支持基于用户和包的访问控制,您可以轻松地管理谁可以访问、发布和安装私有 npm 包。
-
插件支持:Verdaccio 支持插件,您可以扩展其功能,如添加身份验证提供程序、审计日志等。
安装和启动 Verdaccio:
1# 首先安装 Verdaccio
2npm i -g verdaccio
3
4# 查看 verdaccio 的基本信息:
5verdaccio -h
6
7# 启动服务器
8verdaccio
Verdaccio 相关配置:
- 配置文件格式:Verdaccio 配置文件采用的是 YAML 格式,这是配置文件的一种常用格式,基本的语法结构由键值对组成,使用缩进来表示层级关系,键值对使用冒号分隔,键和值之间使用一个空格分隔。例如:
person:
name: John
age: 30
address:
street: Main St.
city: New York
uplinks:
npmjs:
url: https://registry.npmjs.org/
- packages:这个配置项用于对权限的控制。例如:
packages:
'@your-scope/*':
access: $authenticated
publish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
proxy: npmjs
@your-scope/ 这个作用域包,只允许认证过的用户访问和发布,对于其他的包,所有用户都能够访问,但是只有认证过的用户才能发布,从而能够对权限做一个很好的控制。
- auth:设置用户身份的验证方法,默认采用的是 htpasswd 的方式。
镜像管理工具 nrm
nrm 的作用:nrm 是一个专门用于管理 npm 镜像的工具,全称是 npm registry manager。
安装 nrm:
1# 首先安装 nrm:
2npm i -g nrm
安装时可能会遇到错误,因为 nrm 依赖于一个名为 open 的包,因此在安装 nrm 的时候,同时安装 open 即可:
1npm install -g nrm open@8.4.2
nrm 常见指令:
- nrm ls:列出所有可用的镜像列表。
- nrm use < registry >:切换镜像。
- nrm add < registry > < url >:添加镜像。
- nrm del < registry >:删除镜像。