NPM配置私服构建内网中央仓库过程详解

目录
  • 写在前面
  • 1. 概述
  • 2. 部署nexus
  • 3. 几个概念
    • 3.1 代理
    • 3.2 本地包
    • 3.3 包分组
  • 4. 配置NPM包
    • 4.1 配置本地包
    • 4.2 配置代理
    • 4.3 配置包分组
    • 4.4 配置好后我们就可以进行发布和下载
    • 4.5 遇到的问题
      • 4.5.1 在登录的时候遇到的问题
      • 4.5.2 登录报错

写在前面

目前大部分的项目,基本上都采用了前后端分离的框架。随着项目的不断做大做强,框架就会变得很庞大。

那么前端的框架,也是会变得不断的臃肿。不同的模块项目前端,可能有些公共的方法,都是共用一套的,那一般的做法就是每个模块都拷贝一份一样的代码。

那这样就会存在问题,如果有公共的方法需要修改,那所有的模块前端框架都得改,这是一个比较大的问题。

我们的java项目,就可以抽取公共的模块,使用maven进行管理;其实前端的框架,也是可以抽取公共的模块,使用npm进行管理。

那这里就涉及到公共模块包,要如何存放的问题了,这里就得有个npm模块仓库才行。

那这里就有个问题,我们自己公司开发得公共模块,不能够发布到外网得中央仓库吧?这个是会存在安全问题的,所以我们得有自己得一个仓库。

那这里就我们今天要讲得主要内容,使用nexus配置出npm私服。

好喽,废话不多说了,我们上正菜喽!!!

1. 概述

在目前的前端都分离开发时,我们也会将前端编译成组件的方式,实现在项目之间的重用。在很多情况下 我们可以将 组件发布到 npmjs.org网站,不过这个问题是网速慢是网速慢,同时发布到外网,总会存在一定的安全问题。

有时我们只是在团队内部使用,这样我们可以部署自己的私服。

nexus 就是一个私服管理的软件,他支持jar,也支持 npm的私服。

2. 部署nexus

nexus 这个软件之前是免费下载的,现在有商业版本和免费版本。我们可以网络上找到这些软件,建议使用3.22以上的版本。

将tar –xzf *.gz 软件解压,然后执行命令进行启动。

解压后我们可以看到:

解压出了两个目录

注意不要使用root 用户启动服务,我们可以创建一个用户

  • 添加用户
  • useradd nexus
  • 对目录进行授权
 chown -R nexus:nexus nexus-3.31.1-01
 chown -R nexus:nexus sonatype-work
 chmod -R 744 nexus-3.31.1-01
 chmod -R 744 sonatype-work
  • 使用nexus 用户启动
 su nexus
 cd nexus-3.31.1-01/bin
 //可以尝试以下命令启动
 ./nexus run //这个可以看到启动日志
 ./nexus start & //后端启动
  • 开放端口
/sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT

3. 几个概念

我们可以在私服上创建自己的库。

库分为三种类型:

3.1 代理

这种可以代理比如淘宝的镜像,这个数据块,而且通常能找到我们需要的包。

3.2 本地包

这个意思是,我们可以将私有的包发送到本地包。这个用于发布包。

3.3 包分组

这个是将本地包和代理进行组合,这个通常用来现在相关的包,这个用来下载包。

4. 配置NPM包

4.1 配置本地包

创建仓库

选择仓库类型

4.2 配置代理

这里我们配置的是代理淘宝。

4.3 配置包分组

4.4 配置好后我们就可以进行发布和下载

  • 配置使用私服

执行下面的命令,指定本地仓库。

npm config set registry http://***:8081/repository/npm_llsydn_hosted/
  • 登录私服

npm login

输入 nexus 的用户密码和有效登录。

使用私服进行安装

npm install --registry=http://***:8081/repository/npm_llsydn_group/

注意这里使用的是包分组,这个分包组包括了本地和代理的镜像。

发布组件包

直接使用 npm publish 进行发布。

4.5 遇到的问题

4.5.1 在登录的时候遇到的问题

执行npm login,输入正确的密码后报错如下:

Unable to authenticate, need: BASIC realm=”Sonatype Nexus Repository Manager”

解决办法:

4.5.2 登录报错

Unable to authenticate, need: BASIC realm=”Sonatype Nexus Repository Manager”

这个错误和上面的错误看上去是一样的。

这个错误,在其他人的机器登录又是可以的,解决办法 找到文件:.npmrc

可以清空到这个文件,然后再重试就可以了。

以上就是NPM配置私服构建内网中央仓库过程详解的详细内容,更多关于NPM配置私服内网中央仓库的资料请关注我们其它相关文章!

(0)

相关推荐

  • Vue3中使用pnpm搭建monorepo开发环境

    目录 前言 Pnpm 和 Monorepo 搭建开发环境 创建项目 配置 monorepo 安装依赖 初始化Typescript 准备两个模块 shared reactivity 编写构建脚本 完成第一次调试 小结 前言 Vue3 源码阅读系列,计划从环境搭建开始,将 Vue3 的响应式模块,运行时模块和编译器模块,以及状态库 Pinia.路由库 Vue-Router的核心原理做一个梳理.这大概是一个漫长的过程.祝自己不要烂尾,祝大家有所收获. Pnpm 和 Monorepo Pnpm 是新一代

  • 10分钟内讲解Npm脚本使用教程

    目录 引言 1.什么是npm脚本? 2.原则 3.通配符 4.传递参数 5.执行顺序 6.默认值 7.钩子 8.缩写形式 9.变量 10.常见脚本示例 11.使用nrm管理npm镜像 引言 使用Node进行开发时,必须使用npm,脚本是npm的最强大和最常见的功能之一. 我将在本文中介绍如何使用npm脚本. 1.什么是npm脚本? Npm允许您使用文件中的scripts字段定义脚本命令package.json. { // ... "scripts": { "build&quo

  • Node.js npm命令运行node.js脚本的方法

    //通过npm运行node脚本 (控制台应用程序) cmd---cd package.json所在的目录---npm start (package.json中的scripts属性中设置start命令) cmd---npm (通过该命令可以查看npm后面能够设置的具体命令) package.json: { "scripts":{ "start": "node demo.js", // cmd环境中,npm start命令 就相当于 node dem

  • npm发包实践使用gRPC教程

    目录 1.目的 2.步骤 3.结果 4.package.json 参考 1.目的 实现将自己的一些工具或者 demo 作品 放到 npm 帮助更多开发者理解和学习,构建强大的学习生态 可以直接 安装到你的项目中,入门级理解 gRPC 2.步骤 1.敲这个 命令  输入 npm 上注册的 username password 还有邮箱 npm adduser --registry https://registry.npmjs.org/ 2.敲这个 npm publish --registry htt

  • 支持cjs及esm的npm包实现示例详解

    目录 正文 tsc cjs esm package.json rollup rollup.config.js package.json webpack webpack.config.js package.json esbuild 正文 模块化是一个老生常谈的问题了,打包工具层出不穷. 那么,如何利用这些打包工具去打出既支持cjs,又支持esm的npm包呢. 这篇文章不涉及概念,是一些打包实测. demo repo: github.com/FrankKai/np… 可以clone下来,本地构建测试

  • pm2与Verdaccio搭建私有npm库过程详解

    目录 前言 一般私有化的npm仓库有以下几种方法实现: 下面对各个方案进行一个粗浅的对比: 为什么选用Verdaccio? 安装 修改配置 配置文件 权限把控 部署 docker部署 pm2部署 管理npm仓库源 npm包发布 注册 登录 发布 删除 前言 最近开会的时候讨论到前端组件库搭建,因为需要多人协作,使用npm link等都比较麻烦,且当业务规模较大了之后,我们一般会有自己的脚手架,自己的全局工具包等等.其中可能包含了自身的业务代码不能公开,因此我们都需要一个私有化的npm仓库. 一般

  • NPM配置私服构建内网中央仓库过程详解

    目录 写在前面 1. 概述 2. 部署nexus 3. 几个概念 3.1 代理 3.2 本地包 3.3 包分组 4. 配置NPM包 4.1 配置本地包 4.2 配置代理 4.3 配置包分组 4.4 配置好后我们就可以进行发布和下载 4.5 遇到的问题 4.5.1 在登录的时候遇到的问题 4.5.2 登录报错 写在前面 目前大部分的项目,基本上都采用了前后端分离的框架.随着项目的不断做大做强,框架就会变得很庞大. 那么前端的框架,也是会变得不断的臃肿.不同的模块项目前端,可能有些公共的方法,都是共

  • 使用反向ssh从外网访问内网主机的方法详解

    前言 最近遇到一个问题,就是过几天我需要离开学校,而且到时候仍然想登陆校园网里的一台服务器进行工作:但是我又没有校园网网关的操作权限,不能做端口映射,也不能搞到校园网内部主机的外网ip,而且学校自己提供的vpn又根本没法用.研究了半天,总算找到了一个比较不错的利用反向ssh(reverse ssh tunnel)进行内网登陆的解决方案. 工作原理 之所以很多转发的方法无法应用在这里,就是因为内网主机对外网其实是不可见的,也就是说外部主机不能用一般的方法访问到内部主机.那么我们就想了,能不能用内网

  • 基于nexus3配置Python仓库过程详解

    搭建Python私服,我们依旧使用nexus3. 与其他私服一样的,Python私服同样有三种类型: hosted : 本地存储,便于开发者将个人的一些包上传到私服中proxy : 提供代理其他仓库的类型,如豆瓣的pypi仓库group : 组类型,实质作用是组合多个仓库为一个对外的地址 那么就来一个一个创建. 1,创建blob存储 为其创建一个单独的存储空间. 2,创建hosted类型的pypiName: 定义一个名称local-pypiStorage Blob store,我们下拉选择前面创

  • Spring Boot构建优雅的RESTful接口过程详解

    RESTful 相信在座的各位对于RESTful都是略有耳闻,那么RESTful到底是什么呢? REST(Representational State Transfer)表述性状态转移是一组架构约束条件和原则.满足这些约束条件和原则的应用程序或设计就是RESTful.需要注意的是,REST是设计风格而不是标准.REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准. 也许这段话有些晦涩难懂,换个角度

  • AntV F2和vue-cli构建移动端可视化视图过程详解

    AntV F2是蚂蚁金服旗下的一个专注于移动,开箱即用的可视化解决方案,完美支持 H5 环境同时兼容多种环境(Node, 小程序,Weex),完备的图形语法理论,满足你的各种可视化需求,专业的移动设计指引为你带来最佳的移动端图表体验. AntV F2官方文档地址:https://antv.alipay.com/zh-cn/f2/3.x/ 话不多说,直接进入正题: Antv F2官方比较友好,给我们提供了两种方式方便我们使用,分别是CDN方式(引入在线资源 <script src="http

  • 从web到内网渗透的一次过程详解

    目录 记一次从web到内网的渗透 拓扑图 环境介绍 渗透过程 target1 target2 taget3 记一次从web到内网的渗透 拓扑图 环境介绍 现在有三台机器,分别为target1,target2,target3,里面分别有三个flag,每个flag的分值不同,需要通过拿下一个已知IP(target1)进而向内网里面进行渗透,最终要成功获得三台主机权限 渗透过程 target1 使用nmap进行扫描 可以看到开启了80端口 浏览器访问目标靶机80端口 可以看到就是apache的默认页面

  • Spring Cloud应用实现配置自动刷新过程详解

    这篇文章主要介绍了Spring Cloud应用实现配置自动刷新过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过spring cloud 的消息总线,将配置github 等源代码仓库的变更通知到spring cloud 的所有组件. spring-bus 需要用到rabbitmq ,所以需要提前准备rabbitmq消息队列环境 配置中心调整 1.配置中心配置引用pom <dependency> <groupId>org.

  • docker使用registry搭建本地镜像仓库实例详解

    目录 一.系统环境 二.前言 三.使用registry搭建私有镜像仓库 3.1 环境介绍 3.2 k8smaster节点配置镜像仓库 3.3 k8sworker1节点配置从私有仓库上传和拉取镜像 3.3.1 上传镜像到私有仓库 3.3.2 从私有仓库里拉取镜像 四.附录:删除私有仓库镜像的Python脚本 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_6

  • 搭建nextcloud私有云存储网盘的教程详解

    Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Windows.Mac.Android.iOS.Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘. 简介: 搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是"下一代"

随机推荐