verdaccio搭建私有npm服务
posted @ 2022-08-08 10:38
verdaccio搭建简述(以windows平台为例)
安装
npm i -g verdaccio
安装verdaccio
启动及配置
- 控制台执行
verdaccio
即可开启服务可以快捷命令指定IP和端口开启服务:如
verdaccio --listen 0.0.0.0:80
- 默认服务端口是
4873
,通过http://localhost:4873
即可访问 - 服务的配置及存储文件位置在
%USERPROFILE%/AppData/Roaming/verdaccio
(注意这个文件夹要运行一次verdaccio才会存在) - 其中
config.yaml
,是服务的配置文件,大部分配置注释中都有说明 - 这里我们将其中的listen改成
0.0.0.0:4873
,使服务在局域网可以访问,如图
另外注意防火墙入站规则要放行4873端口,否则会导致局域网其他主机无法访问服务# https://verdaccio.org/docs/configuration#listen-port listen: 0.0.0.0:4873 # default value
更多配置及使用说明详见官方文档 - 服务的开启可以考虑使用pm2(一个NodeJs下进程管理的东东)
pm2 -h
可以查看所有命令- 有时候pm2开启会error,直接使用
verdaccio
命令开启就行,具体错误我没有去排查
- 设置里有语言切换和操作提示
- 默认服务端口是
-
接下来就是常规的npm操作了
nrm add local http://127.0.0.1:4873
将verdaccio搭建的npm本地服务源添加到nrm列表中(这里为了方便,使用了nrm,npm i -g nrm
)nrm use local
将源切换到本地npm服务,local只是起的一个本地名字,不必纠结
-
添加用户
- npm adduser
- 输入用户名和密码
- 创建成功后会提示如
Logged in as username on http://127.0.0.1:4873/
-
然后就是常规的使用了
- 前面的步骤配置好后,和常规的npm使用就是一样的了,
npm publish
、npm install
之类的 - 在配置正确的情况下,可以包发布到本地服务,也可以从本地服务安装已经发布的包。
- 安装时,如果本地服务没找到对应的包,将到官方源寻找
- 前面的步骤配置好后,和常规的npm使用就是一样的了,
-
安全问题
如果有需要将verdaccio放在公网服务器的情况下,就需要考虑到安全问题了。不可能开放到谁都能访问和发布。
详细见另一篇文档verdaccio搭建之简易的安全控制 (编写中。。。)
常见错误
- 执行
pm2 start verdaccio
之后服务不可访问,此时可以执行pm2 ls
查看已开启的服务列表,如果发现verdaccio的状态是stopped,说明开启异常。执行pm2 log
查看日志信息,根据报错进行排除 - npm发包时发不出去,如果以前有发布到别的源上,除了指定当前需要发布的对象源之外,还需要把package-lock.json删除才能发布
- nrm配置的npm源,verdaccio可能不会继承(印象中旧版本是继承的...)。
因为npm默认镜像源连接质量差,verdaccio很容易报uplink is offline
的问题(因为连接超时了)。
如果需要,排查到这个错误时,到配置文件(config.yml)修改uplinks为需要的npm源,然后重启verdaccio服务即可# https://verdaccio.org/docs/configuration#uplinks # a list of other known repositories we can talk to uplinks: npmjs: # url: https://registry.npmjs.org/ url: https://registry.npmmirror.com/
- error reading package.json: Bad control character in string literal in JSON at position 980828
部分包代理会出现这个问题,比如rollup。这个我没有具体细究原因,可能与配置有关。 - No matching version found... 这个表示没找到对应版本的包。但是,pm2开启的verdaccio服务可能会存在这个问题,
可以尝试不通过pm2,直接开启verdaccio来排查。
相关链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律