网站首页 > 技术文章 正文
前言
前端团队沉淀一套通用的UI库、工具类、脚手架,不允许在公网发布,内网npm私有库搭建需求应运而生。如何在内网环境搭建npm私有仓库并使用?主角登场了 —— Verdaccio。接下来我来教大家使用 verdaccio 在内网环境中搭建npm私有仓库。
基础环境
为了避免因为基础环境不一致而产生意料之外的问题,基础环境要尽可能保持一致。
环境依赖 | 版本 | 说明 |
Centos | 7.9 | 这里以Centos系统为例 |
Node.js | 16.19.0 | 推荐 16.x lts |
pm2 | 5.2.2 | nodejs进程守护工具 |
verdaccio | 5.19.1 | npm私有仓库 |
nvm | 0.39.1 | nodejs版本管理工具 |
下载安装工具(nvm)
nvm国内镜像下载!
# 下载并安装nvm
curl -fsSL https://gitee.com/eagle_0810/nvm/raw/master/install.sh | bash
# 重载配置
source ~/.bashrc
# 验证执行安装成功
nvm --version
# 安装nodejs
nvm install v16.19.0
# 更换npm源为淘宝镜像
npm config set registry=https://registry.npmmirror.com
安装verdaccio、pm2
npm install -g verdaccio@5.19.1 pm2@5.2.2
修改verdaccio默认配置
其他更多配置可查看verdaccio官网
https://verdaccio.org/zh-CN/docs/configuration
# 执行verdaccio验证安装成功并生成配置文件
verdaccio
# 修改配置文件
vim /root/.config/verdaccio/config.yaml
# 修改页面标题
web:
title: CloudWise-Verdaccio
# 上传npm包大小限制修改
max_body_size: 100mb
# 允许内外网其他设备访问
listen:
- 0.0.0.0:4873
# 修改web端默认语言为中文
i18n:
web: zh-CN
启动verdaccio服务
verdaccio是基于nodejs的应用,因此需要pm2守护verdaccio进程。
pm2 start verdaccio
验证是否部署成功
注意:开放对应端口(4873)
访问:http://ip:4873/
发布npm私有包
注意:发布私有包必须将镜像修改为私有镜像地址且私有npm包名称必须是"@{组织名}/{npm-name}"
修改镜像源地址
npm set registry http://ip:4873/
注册账号
输入以下命令后开始注册用户
npm adduser
登陆账号并验证是否登录成功
npm login
npm who am i
在项目package.json中配置包信息
如果从0开发的项目可以直接npm init
如果项目有package.json可直接手动修改
注意:私有包名称必须是"@{组织名}/{npm-name}"
例如:@cloudwise/map-common
发布、删除私有包
npm publish
npm unpublish 包名 --force
使用私有包
npm、yarn 切换回淘宝镜像,项目根目录下添加.npmrc、.yarnrc文件添加以下配置支持npm和yarn安装私有包。
# .npmrc 文件
# 指向内网私源
@{组织名}:registry=http://ip:4873
# .yarnrc 文件
# 指向内网私源
"@{组织名}:registry" "http://ip:4873"
总结
以上就是我个人搭建npm私有仓库的实践了,总的来说使用verdaccio搭建npm私有仓库还是比较简单的,如果有哪里写的不对的地方或者有关教程优化建议欢迎留言指点。
猜你喜欢
- 2024-12-30 go-admin开源项目,快速搭建一个管理后台系统,直接二次开发上线
- 2024-12-30 Ollama教程:本地LLM管理、WebUI对话、Python/Java客户端API应用
- 2024-12-30 Go 项目推荐之 go-admin go的项目
- 2024-12-30 nodejs多版本管理工具 nodejs 版本
- 2024-12-30 npm提示 sill idealTree buildDeps(安装element-ui组件库)
- 2024-12-30 CentOS+Nexus搭建npm私有仓库并推送代码
- 2024-12-30 TS,TypeScript,Windows环境下构建环境,安装、编译且运行
- 2024-12-30 如何提高npm 下载依赖过慢的问题 npm下载包
- 2024-12-30 使用 Verdaccio 搭建npm私有仓库 搭建自己的npm
- 2024-12-30 开发自己的nodejs命令行工具并使用工具
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)