搭建npm私有仓库——verdaccio

news/2024/12/25 15:13:07/文章来源:https://www.cnblogs.com/leeke98/p/18630461

前言

 

Verdaccio 是一个简单的、零配置要求的本地私有 npm 注册表。无需整个数据库即可开始!Verdaccio 开箱即用,带有自己的小型数据库,并且能够代理其他注册表(例如 npmjs.org),并在此过程中缓存下载的模块。对于那些希望扩展其存储功能的人,Verdaccio 支持各种社区制作的插件,以连接到服务,例如 Amazon 的 s3、Google Cloud Storage或创建您自己的插件

Verdaccio is a lightweight private npm proxy registry built in Node.js

verdaccio是基于node.js的,所以在我们的服务器上需要安装node

Linux 部署

1、安装:

npm install -g verdaccio    # using npm
yarn global add verdaccio    # or using yarn

2、运行:

$> verdaccio
warn --- config file  - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:4873/ - verdaccio/3.0.0

Windows 部署

1、安装 nodejs

我们可以安装最新版本,==注意:Verdaccio 5 需要 Node.js v12==

nodejs 下载地址

2、安装 verdaccio

mkdir c:verdaccio         # 创建目录
cd c:verdaccio            # 进入目录
npm install verdaccio        # 安装 verdaccio

3、创建 config.yaml

在当前目录创建config.yaml文件

4、Windows 服务设置

自行选择使用nssm或者winsw,原理都一样。本文使用nssm

  • 下载nssm
  • 添加包含nssm.exe的路径到PATH
  • 打开管理命令
  • 运行nssm install verdaccio,至少必须填写应用程序tab Path,启动目录和参数字段。 假设在系统路径中以及c:verdaccio位置用node安装,以下的值将起作用:
    • Path: node
    • Startup directory: c:verdaccio
    • Arguments: c:verdaccionode_modulesverdacciobuildlibcli.js -c c:verdaccioconfig.yaml
  • 启动服务sc启动verdaccio

配置

我们需要对 verdaccio 进行一些基本设置,打开配置文件:config.yaml

查看verdaccio详细配置

设置网站名

web:  
title: 'Sixpence NPM'

设置用户验证的文件

auth:htpasswd:  file: ./htpasswd  max_users: 1000 #默认为1000,改为-1,禁止注册  

代理配置

uplinks里设置源,然后在packages里设置proxy

# a list of other known repositories we can talk to
uplinks:taobao:url: https://registry.npm.taobao.org/
  npmjs:url: https://registry.npmjs.org/

packages:'@*/*':# scoped packagesaccess: $allpublish: $authenticatedunpublish: $authenticatedproxy: taobao npmjs'**':# allow all users (including non-authenticated users) to read and# publish all packages## you can specify usernames/groupnames (depending on your auth plugin)# and three keywords: "$all", "$anonymous", "$authenticated"access: $all# allow all known users to publish/publish packages# (anyone can register by default, remember?)publish: $authenticatedunpublish: $authenticated# if package is not available locally, proxy requests to 'npmjs' registryproxy: taobao npmjs

配置权限管理

packages:  ‘@/’:  
  #表示哪一类用户可以对匹配的项目进行安装 【$all 表示所有人都可以执行对应的操作,$authenticated 表示只有通过验证的人可以执行对应操作,$anonymous 表示只有匿名者可以进行对应操作(通常无用)】  access: $all  #表示哪一类用户可以对匹配的项目进行发布  publish: $authenticated  
‘*’:  #表示哪一类用户可以对匹配的项目进行安装  access: $all  #表示哪一类用户可以对匹配的项目进行发布  publish: $authenticated  #如果一个npm包不存在,它会去询问设置的代理。  proxy: npmjs  

日志输出设置

logs:  -{type: stdout, format: pretty, level: http}  #-{type: file, path: verdaccio.log, level: info} 

修改监听的端口

listen: 0.0.0.0:4873  

示例

完整配置如下:

#
# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
## path to a directory with all packages
storage: ./storage
# path to a directory with plugins to include
plugins: ./pluginsweb:title: Sixpence Verdaccio# comment out to disable gravatar support# gravatar: false# by default packages are ordercer ascendant (asc|desc)# sort_packages: asc# convert your UI to the dark side# darkMode: true# translate your registry, api i18n not available yet
# i18n:
# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations
#   web: en-USauth:htpasswd:file: ./htpasswd# Maximum amount of users allowed to register, defaults to "+inf".max_users: -1# You can set this to -1 to disable registration.# max_users: 1000# a list of other known repositories we can talk to
uplinks:taobao:url: https://registry.npm.taobao.org/npmjs:url: https://registry.npmjs.org/packages:'@*/*':# scoped packagesaccess: $allpublish: $authenticatedunpublish: $authenticatedproxy: taobao npmjs'**':# allow all users (including non-authenticated users) to read and# publish all packages## you can specify usernames/groupnames (depending on your auth plugin)# and three keywords: "$all", "$anonymous", "$authenticated"access: $all# allow all known users to publish/publish packages# (anyone can register by default, remember?)publish: $authenticatedunpublish: $authenticated# if package is not available locally, proxy requests to 'npmjs' registryproxy: taobao npmjs# You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
server:keepAliveTimeout: 60middlewares:audit:enabled: true# log settings
logs:- { type: stdout, format: pretty, level: http }#- {type: file, path: verdaccio.log, level: info}
#experiments:
#  # support for npm token command
#  token: false
#  # support for the new v1 search endpoint, functional by incomplete read more on ticket 1732
#  search: false# This affect the web and api (not developed yet)
#i18n:
#web: en-USlisten: 0.0.0.0

遇到的问题

问题 1

运行npm install出现 thon Python is not set from command line or npm configuration 解决方案

解决方案

npm install -g -p windows-build-tools

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858662.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

门店协作的未来:协作文档如何提升客户体验?

汽车销售是一种高竞争、高需求精细化管理的业务形态。门店销售团队不仅需要对接客户,还要实时反馈总部的策略与数据。如果销售流程中协同效率不足,往往会导致商机流失和客户满意度下降。协作文档工具的普及,为车企门店带来了全新解决方案。 车企门店销售面临的核心问题 在车…

功率器件的热设计基础(二)——热阻的串联和并联

功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的热设计基础知识,才能完成精确热设计,提高功率器件的利用率,降低系统成本,并保证系统的可靠性。/ 前言 / 功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的热设计…

视频分析设备平台EasyCVR关于未来监控系统可能会集成哪些新技术?

随着科技的飞速发展,监控系统正经历着一场革命性的变革。未来的监控系统将不再是单一的观察和记录工具,而是集成了多种前沿技术的智能平台,它们将极大地提高安全性、效率和响应速度。以下是未来监控系统可能集成的一些关键技术。1、人工智能技术 1)监控系统将越来越多地应用…

【亲测能用】专业音乐制作软件Ableton Live Suite v12.1.5 中文版(附安装教程)

软件介绍 在数字音频工作站(DAW)的领域中,Ableton Live以其创新和灵活性脱颖而出,成为全球音乐家和制作人的首选工具。由德国Ableton公司精心打造,这款软件不仅支持无缝的音乐播放和即时编辑,还提供了强大的音频效果和虚拟乐器,让音乐创作变得无限可能。 功能亮点 Ablet…

【测试侧】产品场景用例模板

产品的场景法用例设计的测试场景用例模板

宝藏推荐!J 人电商零售圣诞忙,哪 6 款办公软件能提升工作学习效能?

圣诞节的钟声敲响,电商零售行业瞬间陷入紧张而激烈的竞争漩涡。对于 J 人特质主导的电商团队而言,这不仅是一场销售大战,更是对团队协作与个人能力的严峻考验。在这关键时期,高效的办公软件犹如得力助手,能够帮助团队优化工作流程、提升沟通效率,实现工作与学习的双丰收。…

源码编译geoserver(idea)

官方教程:https://docs.geoserver.org/main/en/developer/quickstart/intellij.html从 git 存储库中检出源代码:git clone https://github.com/geoserver/geoserver.git geoserver列出可用的分支:% git branch2.21.x2.22.x* main选择main最新动态:% git checkout main或者为…

MFC中CBitmap、CBrush、CFont、CPalette、CPen、CRgn删除GDI对象问题

CBitmap、CBrush、CFont、CPalette、CPen、CRgn均继承自CGdiObject,CDI对象属于CGdiObject,在该类的析构函数中会释放,因此CBitmap、CBrush、CFont、CPalette、CPen、CRgn不必要显式调用DeleteObject()。如果GDI对象在在堆上分配的,则在特定时刻需要删除它,以便执行其析构…

【甲方安全】政府行业+80个威胁检测与安全事件分析场景(2025)

本篇幅详细梳理了 80 个在政企网络安全分析中常见的应用场景,这些场景涵盖了从攻击前兆(如漏洞扫描、情报收集)、攻击过程(如漏洞利用、横向移动)到攻击结果(如数据加密、信息泄露)的各个阶段,旨在协助 SOC 分析师们更好地构建主动防御体系。这些场景并非抽象概念,而是…

想自己做大模型备案的企业看过来【评估测试题+备案源文件】

大模型备案,大模型语料标注规则,大模型安全评估报告文章目录 (一)适用主体 (二)语料安全 (三)模型安全 (四)安全措施要求 (五)词库要求 (六)安全评估要求 (七)附录大模型备案材料源文件 2024年3月1日,我国通过了《生成式人工智能服务安全基本要求》(以下简称…

树洞09

情绪很不好,没人能依靠 钱财多有价,感情胜千金 金玉良缘广,木石前盟稀 愿君有真爱,伴君度此生。

qt读写ini文件

[group1]key1=val1key2=val2sameKay=sameVal [group2]jian1=zhi1jian2=zhi2sameKay=sameZhi比如创建插入一组ini文件,下面是文件写入的代码; Ini文件的写入 ini文件不需要像xml和json一样需要使用QFile打开文件,只需将文件路径及文件格式传入即可(下方代码运行完毕,ini文件…