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

Posted jincheny

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网npm私有仓库搭建以及使用教程相关的知识,希望对你有一定的参考价值。

前言

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

注意:启动失败报错可执行以下命令查看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/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私有仓库还是比较简单的,如果有哪里写的不对的地方或者有关教程优化建议欢迎留言指点。

Docker私有仓库以及Docker shell


Docker搭建私有仓库

  • 公有云:比如百度云, dockerhub
  • 私有云:比如搭建到某个内网, docker
  • 搭建私有仓库:
下载一个镜像
docker默认使用的是dockerhub
docker仓库服务器就是docker注册服务器

//注意docker pull 和dockerspush的区别,如将docker镜像上传到仓库
docker push

1.下载docker注册服务器镜像
docker pull registry:lastes

2.以后台的方式进行运行注册服务器
docker run -d -p 5000:5000 --name server -registry -v /tmp/registry:/tmp/registry registry
//命令执行后将镜像放到了以下目录
/tmp/registry/

3.上传镜像
docker images
//为镜像创建标签
docker tag centos:1.2 losthost:5000/centos:1.2
//将镜像上传到私有仓库
docker psuh losthost:5000/centos:1.2
docker images

4.其他机器下载
下载镜像,从其他一台机器下载私有仓库的镜像
docker pull 192.168.x.xxx:5000/centos:1.2
docker images

  • shell基本语法
//查看系统中的bash解释器
cat /etc/shells
  • 基本命令:
//重定向的输出
echo "hello" > a.txt
ls
cat a.txt

//重定向的输出
cat <a.txt

//可以把任何文件放进这个垃圾箱
echo hello world > /dev/null

  • 管道(连接):
//对目录占用空间进行统计大小
ls | du -sh

//过滤信息
ifconfig -a | grep "ether"

//$是变量
ifconfig -a | grep "ether" | awk print $2
//$引用变量
name = zhangsan
//打印name
echo $name

//$()可以连接多条命令一般用来写脚本, ``适合包含少量命令
//$后面是一条命令,将命令的结果赋值给变量
dir=$(pwd)
echo dir

//结果相同的写法
dir=`pwd`
echo $dir

//起到连接作用
make && make install
echo 123 && echo 1234565
lssa && echo 123// 执行失败

同一台主机虚拟成多台主机
vim /etc/hosts/
ssh-keygen
ssh-copy-id node1
ssh node1就可以直接连接
for i in node1..3;do ssh node$1 hostname; done
三个主机

mkdir shell
ls
cd shell/
ls
vim while.sh
//eq le mo 
#!/bin/bash
a=1
while [ $a -eq 5]
do
echo "hello"
a=$((a + 1))
done

vim if.sh


!/bin/bash
reads -p "please input a number" a
if [$a==5]
then
echo "a==5"
else
echo "a!=5"
fi

//不需要 vim的编辑
cd shell/
cat > hello.txt <<EOF
>no.1
>no.1
>no.3
>EOF
ls
cat hello.txt


以上是关于内网npm私有仓库搭建以及使用教程的主要内容,如果未能解决你的问题,请参考以下文章

CentOS+Nexus搭建npm私有仓库并推送代码

CentOS+Nexus搭建npm私有仓库并推送代码

搭建公司私有npm仓库

搭建npm的私有verdaccio 仓库

运维工具搭建npm私有镜像仓库,天下苦于npm build久矣

树莓派 npm私有仓库verdaccio搭建