<五>企业级开源仓库nexus3实战应用–使用nexus3配置npm私有仓库
直到偶然一个契机,在网上看到一篇介绍nexus3.x的文章,文章写得也比较清晰,我也有兴致细读下去,就这样,开启了我的nexus3私服之旅。
开始我以为这个只是针对maven私服而存在的工具,后来才发现它所支持的,竟然将运维日常所面临的各种私服都包括了,这就极大的引发了我的钻研兴致,从maven私服的研究开始,一发不可收拾的,就又写出了一个nexus3系列教程,涵盖了安装,配置,maven私服,maven私服从2.x到3.x的迁移,docker私服,npm私服,yum私服,纵观全网络,大概也找不到一个人如此这般的,倾尽所有的,知无不言的,言无不尽的将nexus3作为一个系列写成文章的了。而现在,如果再有人与我说起私服的事情,至少我不会跑了,或许更想停下来了,,,哈哈。这就是付出学习所给人带来的心境上的转化!
前言啰嗦几句,愿您在这个小系列中,学习愉快!
想要查看本系列其他文章:请点此处跳转。
希望正在读这段话的你能够在这个小系列中获得自信以及喜悦!
当我们运行前端项目的时候,常常在解决依赖的时候会加上一个参数npm install --registry=https://registry.npm.taobao.org将源指定为淘宝的源,以期让速度加快起来,事实上这种的确能够让速度变快,但是长久来看,如果想真正的快速敏捷开发部署,搭建企业内部的私服,则会让速度更上一个台阶。
搭建npm私服,我们依旧使用nexus3。
与其他私服一样的,npm私服同样有三种类型:
hosted: 本地存储,即同 docker 官方仓库一样提供本地私服功能proxy: 提供代理其他仓库的类型,如 docker 中央仓库group: 组类型,实质作用是组合多个仓库为一个地址
那么就来一个一个创建。
1,创建blob存储。
为其创建一个单独的存储空间。

2,创建hosted类型的npm。
Name: 定义一个名称local-npmStorage:Blob store,我们下拉选择前面创建好的专用blob:npm-hub。Hosted:开发环境,我们运行重复发布,因此Delpoyment policy 我们选择Allow redeploy。这个很重要!

3,创建一个proxy类型的npm仓库。
Name: proxy-npmProxy:Remote Storage: 远程仓库地址,这里填写: https://registry.npmjs.orgStorage: npm-hub。
其他的均是默认。
整体配置截图如下:

4,创建一个group类型的npm仓库。
Name:group-npmStorage:选择专用的blob存储npm-hub。group: 将左边可选的2个仓库,添加到右边的members下。
整体配置截图如下:

这些配置完成之后,就可以使用了。
5,验证使用。
新建一台环境干净的主机,安装好node环境。
首先通过curl 192.168.106.10/a | sh安装好node环境。
然后拷贝一份前端项目的源码。
1,首先获取默认的仓库地址:
- [root@moban business_jsdweb]$npm config get registry
- https://registry.npmjs.org/
2,配置为私服地址。
从如下截图中查看(其实就是创建的组对外的地址)。

通过如下命令配置:
- [root@moban business_jsdweb]$npm config set registry http://192.168.112.214:8081/repository/group-npm/
- [root@moban business_jsdweb]$npm config get registry
- http://192.168.112.214:8081/repository/group-npm/
现在开始安装,安装之前先看一下组里的内容:

可以看到还是空的。
3,安装编译。
- npm install
在编译的过程中,我们已经可以看看组里的变化了:

安装完成,整个过程如下,可以看到一共花费了82秒。
- [root@moban business_jsdweb]$npm install
- > uglifyjs-webpack-plugin@0.4.6 postinstall /root/business_jsdweb/node_modules/webpack/node_modules/uglifyjs-webpack-plugin
- > node lib/post_install.js
- npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
- npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
- added 1216 packages from 717 contributors in 82.171s
4,再一次安装编译。
这里再准备一台环境干净的主机,然后进行一次编译安装,看看效果。
编译之前,先将远程地址配置为我们自己的:
- [root@7-3 business_jsdweb]$npm config get registry
- https://registry.npmjs.org/
- [root@7-3 business_jsdweb]$npm config set registry http://192.168.112.214:8081/repository/group-npm/
- [root@7-3 business_jsdweb]$npm config get registry
- http://192.168.112.214:8081/repository/group-npm/
然后编译,看效果:
- [root@7-3 business_jsdweb]$npm install
- > uglifyjs-webpack-plugin@0.4.6 postinstall /root/business_jsdweb/node_modules/webpack/node_modules/uglifyjs-webpack-plugin
- > node lib/post_install.js
- npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
- npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
- added 1216 packages from 717 contributors in 31.693s
可以看到,同样是全新的环境下,因为第一次已经将依赖从远程缓存到本地私服,那么在第二次安装编译的时候,用时31秒。
私服的重要性,以及便捷性,高下立见!
<五>企业级开源仓库nexus3实战应用–使用nexus3配置npm私有仓库的更多相关文章
- 5.使用nexus3配置npm私有仓库
当我们运行前端项目的时候,常常在解决依赖的时候会加上一个参数npm install --registry=https://registry.npm.taobao.org将源指定为淘宝的源,以期让速度加 ...
- 实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库
本章是<实战maven私有仓库>系列的第三篇,在前两章中,我们先在linux搭建maven私有仓库,然后在开发环境使用此仓库,本章我们在docker下快速搭建maven私有仓库,然后像前面 ...
- 使用Nexus配置Maven私有仓库
使用Nexus配置Maven私有仓库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装配置Nexus 1>.下载nexus 下载地址:https://www.sonat ...
- 使用verdaccio 搭建npm私有仓库
使用verdaccio 搭建npm私有仓库 1. 为什么要搭建私有的npm仓库? 随着公司的业务越来越复杂,项目迭代速度也越来越快,那么项目间的常用的业务代码共享变得非常之有必要.但是对于公司的 ...
- NPM 私有仓库的搭建
NPM 私有仓库的搭建 为什么搭建私有仓库 balabala,当然是有需求的时候嘛 搭建流程 介绍和安装verdaccio 备注: 程序启动后,配置文件为/home/work/.config/verd ...
- <六>企业级开源仓库nexus3实战应用–使用nexus3配置yum私有仓库
一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...
- <二>企业级开源仓库nexus3实战应用–使用nexus3配置docker私有仓库
1,安装nexus3. 这个地方略了,安装部署可以参考:nexus3安装配置. 2,配置走起. 1,创建blob存储. 登陆之后,先创建一个用于存储镜像的空间. 定义一个name,下边的内容会自动补全 ...
- <三>企业级开源仓库nexus3实战应用–使用nexus3配置maven私有仓库
一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...
- 实战maven私有仓库三部曲之二:上传到私有仓库
在上一章<实战maven私有仓库三部曲之一:搭建和使用>我们搭建了maven私有仓库,并体验了私有仓库缓存jar包的能力,避免了局域网内开发人员去远程中央仓库下载的痛苦等待,本章我们再来体 ...
随机推荐
- angualr跨域访问配置
浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了: 简单的解释就是相同域名,端口相同,协议 ...
- C#-委托delegate
目录 委托的定义 委托的声明 委托的实例 委托的注意细节 泛型委托(详见<精通C#>--10.4泛型委托) 1.Action<>委托 3.Func<>委托 附录 委 ...
- 高端内存映射之kmap持久内核映射--Linux内存管理(二十)
1 高端内存与内核映射 尽管vmalloc函数族可用于从高端内存域向内核映射页帧(这些在内核空间中通常是无法直接看到的), 但这并不是这些函数的实际用途. 重要的是强调以下事实 : 内核提供了其他函数 ...
- centos7防火墙开放端口等命令
CentOS 7 开放防火墙端口 命令 最近公司新的server要求用CentOS7, 发现以前CentOS 6 系列中的 iptables 相关命令不能用了,查了下,发现Centos 7使用fire ...
- python文件上传
1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- Git与SVN交叉使用
将本地git项目添加到远程svn中 git svn [svnprojpath] svnprojpath为原创svn项目路径 -- 文件夹路径,你要放到哪个文件夹 官方文档中带有-s参数,但我这边加了会 ...
- .NET CORE学习笔记系列(2)——依赖注入[7]: .NET Core DI框架[服务注册]
原文https://www.cnblogs.com/artech/p/net-core-di-07.html 包含服务注册信息的IServiceCollection对象最终被用来创建作为DI容器的IS ...
- jpa 联合查询方法
public interface TaskBaseline { String getNumber(); String getTitle(); String getName(); String getP ...
- [LeetCode] 12,13 整数和罗马数互转
12. 整数转罗马数字 题目链接:https://leetcode-cn.com/problems/integer-to-roman/ 题目描述: 罗马数字包含以下七种字符: I, V, X, L,C ...
- 8-过滤器Filter和监听器Listener
一.web监听器:监听特殊事件的发生1.监听实现步骤 a.写一个java类,实现特定的接口,重写相关方法 b.在web.xml中,牌配置 <listener> <listener-c ...