前言

前端团队沉淀一套通用的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

安装verdacciopm2

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

注意:启动失败报错执行以下命令查看pm2日志,根据日志修改报错并重新启动verdaccio服务

pm2 logs 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/mapcommon

发布删除私有包

npm publish

npm unpublish 包名 --force

使用私有包

npm、yarn 切换淘宝镜像项目根目录添加.npmrc、.yarnrc文件添加以下配置支持npm和yarn安装私有包。

# .npmrc 文件
# 指向内网私源 
@{组织名}:registry=http://ip:4873

# .yarnrc 文件
# 指向内网私源
"@{组织名}:registry" "http://ip:4873"

总结

以上就是我个人搭建npm私有仓库实践了,总的来说使用verdaccio搭建npm私有仓库还是比较简单的,如果有哪里写的不对的地方或者有关教程优化建议欢迎留言指点。

原文地址:https://blog.csdn.net/jinchenxinglaiy/article/details/128859897

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32460.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注