当前位置:首页 > 技术分析 > 正文内容

内网npm私有仓库搭建以及使用教程

ruisui883个月前 (01-26)技术分析17

前言

前端团队沉淀一套通用的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私有仓库还是比较简单的,如果有哪里写的不对的地方或者有关教程优化建议欢迎留言指点。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/557.html

标签: 卸载npm包
分享给朋友:

“内网npm私有仓库搭建以及使用教程” 的相关文章

细数5款国外热门Linux发行版

Linux系统已经与我们的生活息息相关,当你用Android手机浏览这篇文章时,你就已经在使用Linux系统。当然作为编程开发最热门的系统,他还有很多专注于开发使用的版本。Fedora热门入门推荐,一款优秀的程序猿专供Linux发行版,自带开发者门户,集成大量教程指南、开发集成环境、虚拟机等工具,简...

GitLab-创建分支

描述分支是独立的生产线,是开发过程的一部分。分支的创建涉及以下步骤。创建一个分支步骤1-登录您的GitLab帐户,然后转到“ 项目”部分下的项目。步骤2-要创建分支,请单击“ 存储库”部分下的“ 分支”选项,然后单击“ 新建分支”按钮。步骤3-在“ 新建分支”屏幕中,输入分支的名称,然后单击“ 创建...

抖音 Android 性能优化系列:启动优化实践

启动性能是 APP 使用体验的门面,启动过程耗时较长很可能使用户削减使用 APP 的兴趣,抖音通过对启动性能做劣化实验也验证了其对于业务指标有显著影响。抖音有数亿的日活,启动耗时几百毫秒的增长就可能带来成千上万用户的留存缩减,因此,启动性能的优化成为了抖音 Android 基础技术团队在体验优化方向...

摄影后期必看 | PS插件camera raw 16.4教程 | 范围蒙版

范围蒙版Camera Raw 【蒙版】模块中提供了三个范围蒙版工具,可以通过特定的范围来创建蒙版。此次新增的【范围蒙版】大大加强了acr插件对局部调整的能力。点击下拉小箭头可以看到【颜色范围】,可用于快速选择想要编辑的颜色。快捷键:Shift + C【明亮度范围】,可用于快速选择想要调整的明亮度。快...

el-table内容\n换行解决办法

问题请求到的数据带有换行符 '\n'但页面展示时不换行statusRemark: "\"1、按期完成计划且准确率100%,得100分;\n2、各项目每延误1天,扣1分;每失误1次或者员工投诉1次,扣3分,失误层面达到公司级影响较大的,该项绩效分数为0\"\n&...

JavaScript数组操作:掌握常用方法,提升开发效率

JavaScript数组操作:从增删改查到高级应用本文深入解析JavaScript中常用的数组方法,包括push、unshift、pop、shift、map、filter、reverse、at 和 slice。通过详细的例子和应用场景,帮助开发者快速掌握这些方法,提升代码效率和可读性。开篇点题作为J...