关于前端:企业级npm仓库搭建

43次阅读

共计 3157 个字符,预计需要花费 8 分钟才能阅读完成。

介绍

之前写过一篇前端物料平台的搭建,其中波及到应用公有 npm 仓库来治理前端物料,为此写一下企业的 npm 仓库搭建。

那么企业为什么要搭建公有的 npm 仓库呢,咱们平时大部分应用的是 npm 官网仓库的一些依赖库,然而针对企业级,企业须要开发本人的一些组件库和工具库,这些库须要在组织外部进行治理和共享,不可能上传 npm 私有仓库中,因而咱们须要搭建企业公有仓库来解决这种问题。同时搭建公有仓库,可能晋升 npm 包的装置下载速度和源的稳定性,比方淘宝镜像,实质上也是公有仓库。

接下来咱们介绍一下罕用 npm 公有仓库框架。

1、Nexus
Nexus 是 Maven 仓库管理器,治理开发所须要的构件。如果每次都是从 Apache 提供的 Maven 地方仓库去下载所须要的构件,那么这通常不是一个好的做法。应该在本地架设一个 Maven 仓库服务器,再代理近程仓库的同时保护本地仓库,以节俭带宽和工夫,那么 Nexus 能够满足这样的需要。

Nexus Repository Manager 仓库治理分为专业版和 oss 版,oss 版是收费的,专业版是免费的。

nexus 的性能十分弱小。Nexus 2.x 和 Nexus 3.x 的差异也是十分大;Nexus 3.x 版本更减少了对 Docker、NuGet、npm、Bower 的反对。全面降级了页面,减少治理接口以主动治理工作,性能和用户体验也都有所改善。

2、cnpm

CNPM 是一个 Nodejs 的库,由国内 Alibaba 团队开发保护,致力于打造公有的 NPM 注册服务。当然,除了公有库性能以外,CNPM 官网 (http://cnpmjs.org/) 还提供了 NPM 同步的服务。

3、Verdaccio

Verdaccio 是一个简略的、零配置本地公有 npm 软件包代理注册表。Verdaccio 开箱即用,领有本人的小型数据库,可能代理其它注册表(例如 npmjs.org),缓存下载的模块。此外 Verdaccio 还易于扩大存储性能,它反对各种社区制作的插件,以连贯到亚马逊的 s3、谷歌云存储等服务或创立本人的插件。

下载

本次应用 Nexus 来搭建 npm 仓库,Nexus 不仅反对 npm 包,而且也反对 Maven。首先咱们先去下载收费的 oss 版本,下载地址为 https://www.sonatype.com/download-oss-sonatype。

在这里下载了 nexus-3.31.1-01-unix.tar.gz,而后应用 FileZilla 上传倒服务器中,执行解压命令

$ tar -zxvf nexus-3.31.1-01-unix.tar.gz -C ./

解压到当前目录。

解压后会有两个文件夹,nexus-3.31.1-01 和 sonatype-work。nexus-3.31.1-01 是 nexus 外围文件,蕴含 Nexus 运行所须要的文件,如运行脚本,依赖 jar 包等,sonatype-work 是仓库的工作目录,蕴含 Nexus 生成的配置文件、日志文件、仓库文件等。

nexus-3.31.1-01 目录

  • bin:蕴含 nexus 的启动脚本和相干配置
  • etc:jetty、karaf 等配置文件
  • lib:java 架包库
  • public:对于 nexus 利用在本地跑起来所须要的资源
  • system:利用所有的插件和组件
  • LICENSE.txt 和 NOTICE.txt:版权申明和法律细则

sonatype-work\nexus3 目录

  • blobs:创立 blob 的默认门路,当然也能够从新指定
  • cache:以后缓存的 karaf 包的信息
  • db:OrientDB 数据库的数据,用于存储 nexus 的元数据的数据库
  • elasticsearch:以后配置的 Elasticsearch 状态
  • keystores:主动生成的对于资源库的 ID 主键
  • log:运行实例生成的日志文件
  • tmp:用于存储临时文件的目录

配置

咱们关上 nexus-3.31.1-01 目录下 etc 目录下能够看到泛滥的配置文件。

咱们能够编辑其中的 nexus-default.properties 文件,能够批改默认的端口。

启动与敞开

而后咱们进入 bin 目录下执行 ./nexus start 即可启动。当然也能够应用./nexus run 启动。区别在于:start 以守护线程形式启动,run 以非守护线程形式启动。

$ ./nexus start
$ ./nexus run

启动时可能比较慢,须要多等一会,如果想看启动日志状况能够进入 sonatype-work 目录。

# 进入 sonatype-work 目录的 nexus3 日志目录
$ cd sonatype-work/nexus3/log
#查看实时日志
$ tail -f nexus.log

敞开咱们能够应用 ./nexus stop 命令来敞开。

$ ./nexus stop

拜访

关上浏览器输出:http://ip:8081 即可拜访,这里留神在 nexus2 的版本拜访地址是 http://ip:8081/nexus,在 nexus3 版本间接 ip+ 端口就能够拜访了。

而后咱们点击 Sign in 进行登录,管理员账号默认为 admin,弹框会提醒 admin 的明码寄存在 sonatype-work/nexus3/admin.password 中,咱们能够应用其明码进行登录,登录后会提醒更改明码,尔后 admin.password 也就有效了。

配置 npm 公有仓库

nexus 默认没有 npm 公有仓库,须要咱们本人去创立。首先咱们先在管理员配置中,仓库下关上 blob 存储,点击创立 blob 存储,为 npm 私库创立一个独自的公有空间。

抉择 File 类型,输出名称点击 create blob store 即可。

而后再别离创立三种类型的 npm 仓库:hosted、proxy、group。

  • hosted:本地存储,你能够上传你本人的我的项目到这外面。
  • proxy:提供代理其余仓库的类型,即你能够设置代理,设置了代理之后,在你的 nexus 中找不到的依赖就会去配置的代理的地址中找。
  • group:组类型,它能够蕴含后面两个,是一个聚合体。个别用来给客户一个拜访 nexus 的对立地址。

简略的说,就是你能够上传公有的我的项目到 hosted,以及配置 proxy 以获取第三方的依赖(比方能够配置地方仓库的地址)。后面两个都弄好了之后,在通过 group 聚合给客户提供对立的拜访地址。

咱们先创立这三个对应的仓库。

npm-hosted

输出 Name,抉择 Blob store 和 Deployment policy。

  • Name:定义一个名称 npm-hosted。
  • Blob store:咱们下拉抉择后面创立好的专用 blob:npm-blob。
  • Deployment policy:开发环境,咱们运行反复公布,因而 Delpoyment policy 咱们抉择 Allow redeploy。

npm-proxy

输出 Name,近程仓库地址以及抉择 Blob store。

  • Name:定义一个名称 npm-proxy。
  • Remote storage:上游近程仓库地址,这里填写: https://registry.npmjs.org 也能够填写淘宝镜像地址。
  • Blob store:和 hosted 一样抉择咱们创立好的 npm-blob。

npm-group

同样输出名称 Name,抉择创立好的 Blob store 把前两个创立的代理仓库(npm-proxy)和公有仓库(npm-hosted)从 Avaliable 区挪动到 Members 区即可。

创立实现后即可应用了。

首先咱们获取一下 npm-group 对外提供的地址即私库地址。

而后咱们能够应用 npm install 命令来装置依赖包。

npm install --registry http://ip:port/repository/npm-group/

参考文章

  • 二丫讲梵 -nexus 的装置
  • 【Windows】应用 Nexus 搭建 npm 私库,治理 npm 包,并在我的项目中下载

正文完
 0