首页 > 其他分享 >搭建 npm 私服

搭建 npm 私服

时间:2024-12-26 19:52:03浏览次数:7  
标签:npm service xxx 私服 verdaccio systemctl root 搭建

背景

准备搭建一个自己的网站,放些平时练手的 demo,如果是不同项目,想要保持风格一致,或是要用到一些工具方法,就要在每个项目复制一份,不是很好维护,于是就想要搭建一个自己的 npm 私服

安装 verdaccio

1 安装

verdaccio,这是一个开源的私有 npm 注册中心,要注意的是,现在官网正在推行的版本是 6.x,node 版本需要 >=18,历史最新版本是 5.33.0,node 版本需要 >= 14,据官方说明 5.x 之后将不再更新

可以根据自己的现状选择要使用的版本,因为我的服务器 node 版本是 16,更新到 18之后有一系列依赖版本问题,因此使用 5.33.0

npm install -g verdaccio

安装完成之后在终端输入 verdaccio,有以下输出表示安装成功

 

2 配置

可以看到 config 文件的地址,在终端执行 vim /root/verdaccio/config.yaml,编辑配置文件,添加 listen: 0.0.0.0:4873

 

在云服务器的管理台-安全组-入方向,将 4873 端口放开,再到浏览器访问 http://服务器ip:4873,可以看到以下内容就成功了

 

3 用 systemctl 管理服务 

执行 vim /etc/systemd/system/verdaccio.service 

在 verdaccio.service 文件里加入以下内容并保存

[Unit]
Description=Verdaccio lightweight npm proxy registry

[Service]
Type=simple
Restart=on-failure
#User=root
ExecStart=/root/.nvm/versions/node/v16.20.2/bin/verdaccio --config /root/verdaccio/config.yaml
[Install]
WantedBy=multi-user.target

执行 sudo systemctl daemon-reload 加载配置文件

执行 systemctl start verdaccio.service 启动服务

补充:

执行 systemctl restart verdaccio.service 重启服务

执行 systemctl stop verdaccio.service 停止服务

执行 systemctl status verdaccio.service 查看运行状态

执行 journalctl -u verdaccio.service 查看服务启动时的日志

再次在浏览器中访问,如果可以正常看到页面,就配置成功了

4 配置访问域名

给域名解析添加一条 A 记录

在服务器上添加 nginx 反向代理配置

我的配置文件统一管理在 /etc/nginx/vhost 文件夹下,所以执行  vim /etc/nginx/vhost/verdaccio.conf 添加以下内容

 server {
listen 80; server_name registry.npm.xxx.xxx; location / { proxy_pass http://127.0.0.1:4873/; proxy_set_header Host $host; } }

添加完成后,执行 nginx -s reload,重新加载 nginx 配置文件,让上述配置生效

5 支持 https 访问

执行 sudo  certbot --nginx,为 registry.npm.xxx.xxx生成证书,支持 https 访问

实际访问后发现控制台报错,请求资源的地址还是 ip,可以 vim /root/verdaccio/config.yaml,编辑配置文件如下

再次访问发现还是不对,请求资源时还是用的 http 协议而不是 https,资源加载失败,页面空白

vim /etc/systemd/system/verdaccio.service 新增环境变量,锁定资源请求地址

[Service]
Type=simple
Restart=on-failure
#User=root
ExecStart=/root/.nvm/versions/node/v16.20.2/bin/verdaccio --config /root/verdaccio/config.yaml
Environment="VERDACCIO_PUBLIC_URL=https://registry.npm.xxx.xxx"

执行  systemctl daemon-reload,再执行 systemctl restart verdaccio.service,重启服务,页面可以正常访问

 

 

发布包

根据上面访问的页面上的提示

1 创建用户

在终端执行 npm adduser --registry https://registry.npm.xxx.xxx(在使用侧就可以,不用在服务器执行)

按照提示输入用户名、密码、邮箱,密码输入时不显示,输入完成后回车即可

2 登录验证

用刚刚的用户名密码在页面登录,如下图就是创建成功

3 发布

准备一个用来发布的包,把本地的 npm 仓库地址换成自己的私服地址,在包的 package 那级打开终端,执行 npm publish 即可

发布成功之后刷新页面可以看到刚刚上传的包

 

标签:npm,service,xxx,私服,verdaccio,systemctl,root,搭建
From: https://www.cnblogs.com/veinyin/p/18567259

相关文章

  • APPium环境搭建
    已经被该玩意儿折磨多次,将APPium环境搭建的具体依赖进行记录。我自己看的明白就行,不接受指点!一、安装APPium2服务1APPium项目下载地址Github对应地址(需梯子)以上的国内镜像地址2NPM方式进行安装打开CMD执行npminstall-gappium,下载完成后执行APPium-V查看是否为2以......
  • vue项目安装依赖遇到if not defined npm_config_node_gyp问题处理
    报错信息:解决方法:1.安装node-gyp:npminstall-gnode-gyp2.找到安装node-gyp的路径,直接去安装node的目录下查找,可以参考下图: 3. 在C:\Users\Administrator\.npmrc中添加上一步找到的node-gyp.js的路径:npm_config_node_gyp=C:\ProgramFiles\nodejs\node_modul......
  • 老旧电脑当私有云,老旧电脑搭建私有云的方法
        随着云存储技术的普及,越来越多的人希望利用云存储来保存和管理自己的数据,但订阅第三方云存储服务往往需要支付费用。如果您手头有一台旧电脑,与其将它闲置或丢弃,不如将它改造成私人云存储服务器!这样不仅可以充分利用现有资源,还能确保数据的私密性和可控性。那么,如何使用......
  • Rocky8.10搭建zabbix​6.4详细教程
    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbixserver与可选组件zabbixagent。zabbixs......
  • 【comfyui教程】ComfyUI喂饭教程!一个适合新手的工作流搭建思路!
    前言在[《解锁ComfyUI:新手到高手的五级跳》]这篇文章中,我分享了自己学习ComfyUI的五个阶段,而最后一个阶段——创建自己的工作流,尚未详细介绍。今天我就来填坑啦~自己动手,丰衣足食,自己从头到尾搭建一个工作流,才是真正掌握ComfyUI精髓的王道。我们马上开始吧!一、明确目标......
  • Next.js 14 基础入门:从项目搭建到核心概念
    Next.js14带来了许多激动人心的新特性,包括局部渲染、ServerActions增强等。作为一名前端开发者,我最近在项目中升级到了Next.js14,今天就来分享一下从项目搭建到实际应用的完整过程。项目初始化首先,让我们创建一个全新的Next.js14项目:#使用create-next-app创建......
  • Vue - vue 前端项目基础框架搭建流程
    1.初始化项目pnpmcreatevue//添加路由支持pnpmaddvue-router//添加数据状态管理支持pnpmaddpinia//添加UI模块支持pnpmaddelement-plus//添加图标支持pnpmadd@element-plus/icons-vue//增加网络请求模块支持pnpmaddaxios//添加国际化支持pnpmadd......
  • 搭建高效帮助中心:9步实现企业与平台的协同
    搭建一个优秀的帮助中心可以帮助企业更好地向用户传递信息,提高用户满意度和忠诚度。在今天的数字化时代,许多企业都已经开始意识到了帮助中心的重要性。步骤1:明确目标和用户需求在开始创建帮助中心之前,您需要首先明确目标和用户需求。帮助中心的目标是什么?是提高用户的满意......
  • 2025知识库工具搭建攻略:塑造知识管理新范式
    在当今这个信息爆炸的时代,知识已然成为个人与组织发展的核心驱动力。随着2025年的临近,如何搭建一套高效、智能的知识库工具,塑造全新的知识管理范式,成为众多有识之士关注的焦点。一、明确搭建知识库工具的目标在开启搭建之旅前,精准锚定目标至关重要。对于企业而言,是期望通......
  • AI绘画,一步一步徒手搭建ComfyUI工作流,教你编辑和修改工作流,ComfyUI入门教程
    前言:“探索AI绘画的魅力,从零开始,一步步带你徒手搭建ComfyUI工作流。本教程将详细介绍如何编辑和修改工作流,助你轻松入门ComfyUI,开启创意无限的艺术之旅。跟随我的步伐,让我们一起揭开AI绘画的神秘面纱!”在上一篇文章中,我们讲过如何自己一步一步手动搭建ComfyUI的基本工作......