当前位置: 首页 > Web前端 > HTML

企业级npm仓库搭建

时间:2023-03-28 13:18:52 HTML

介绍之前写过一篇前端素材平台搭建的文章,里面涉及到使用私有npm仓库来管理前端素材。为此,我将写一篇企业级npm仓库的搭建。那么为什么企业要建立私有npm仓库呢?我们大多数人平时使用的都是npm官方仓库的一些依赖库,但是对于企业级来说,企业需要开发一些自己的组件库和工具库。这些库需要在组织内开发。管理分享无法上传到npm公共仓库,需要搭建企业私有仓库来解决这个问题。同时搭建私有仓库可以提高npm包的安装下载速度和源的稳定性,比如淘宝镜像,本质上也是私有仓库。接下来介绍一下常用的npm私有仓库框架。1、NexusNexus是一个Maven仓库管理器,管理开发所需的组件。每次都从Apache提供的Maven中央存储库下载所需的组件通常不是一个好的做法。应该在本地搭建一个Maven仓库服务器,然后维护本地仓库,同时代理远程仓库,节省带宽和时间,Nexus就可以满足这样的需求。NexusRepositoryManager仓库管理分为专业版和oss版,oss版免费,专业版收费。nexus非常强大。Nexus2.x和Nexus3.x的区别也很大;Nexus3.x版本增加了对Docker、NuGet、npm和Bower的支持。页面全面升级,新增管理界面自动管理任务,性能和用户体验也得到提升。2.cnpmCNPM是一个Nodejs库,由国内阿里巴巴团队开发维护,致力于搭建一个私有的npm注册服务。当然,除了私有库功能,CNPM官网(http://cnpmjs.org/)也提供了npm同步服务。3.VerdaccioVerdaccio是一个简单的、零配置的本地私有npm包代理注册表。开箱即用,Verdaccio有自己的小型数据库,可以代理到其他注册表(例如npmjs.org),并缓存下载的模块。此外,Verdaccio还易于扩展存储功能,它支持各种社区制作的插件来连接亚马逊的s3、谷歌云存储等服务,或者创建您自己的插件。本次下载使用Nexus搭建npm仓库,Nexus不仅支持npm包,还支持Maven。首先我们到https://www.sonatype.com/download-oss-sonatype下载免费的oss版本。在这里下载nexus-3.31.1-01-unix.tar.gz,然后使用FileZilla上传到服务器,执行解压命令$tar-zxvfnexus-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:applyall插件和组件LICENSE.txt和NOTICE.txt:版权声明和法律规则sonatype-work\nexus3目录blobs:创建blob的默认路径,当然你也可以重新指定cache:当前缓存的信息karafpackagedb:OrientDB数据库的数据,用来存放nexus元数据的数据库elasticsearch:Elasticsearch当前配置的状态keystores:自动生成的资源库的ID主键log:运行生成的日志文件instancetmp:用于存放临时文件的目录配置我们打开nexus-3.31.1-01目录下的etc目录下可以看到很多配置文件。我们可以编辑nexus-default.properties文件,修改默认端口。开机关机然后我们进入bin目录下执行./nexusstart启动。当然你也可以使用./nexusrun来启动。区别在于:start是作为守护线程启动的,run是作为非守护线程启动的。$./nexusstart$./nexusrun启动可能比较慢,需要稍等片刻。如果想看启动日志,可以进入sonatype-work目录。#进入sonatype-work目录的nexus3日志目录$cdsonatype-work/nexus3/log#查看实时日志$tail-fnexus.logshutdown我们可以使用./nexusstop命令将其关闭。$./nexusstopaccess打开浏览器输入:http://ip:8081即可访问,这里注意nexus2版本中访问地址为http://ip:8081/nexus,nexus3版本中可以访问直接ip+端口起来。然后我们点击Signin进行登录,管理员账号默认为admin。弹框会提示admin密码存放在sonatype-work/nexus3/admin.password中。我们可以使用它的密码登录,登录后会提示修改密码。此后admin.password将无效。配置npm私有仓库nexus默认没有npm私有仓库,需要我们自己创建。首先我们先在管理员配置中打开仓库下的blob存储,点击Createblobstorage,为npm私有库创建一个单独的私有空间。选择文件类型,输入名称并单击创建blob存储。然后创建三种类型的npm仓库:hosted、proxy和group。hosted:本地存储,可以上传自己的项目到里面。proxy:提供其他仓库的代理类型,即可以设置代理。设置代理后,在你的nexus中找不到的依赖会在配置的代理地址中找到。group:组类型,可以包含前两者,是一个聚合。一般用于给客户一个统一地址访问nexus。简单的说就是可以将私有项目上传到hosted,配置proxy获取第三方依赖(比如可以配置中央仓库的地址)。前两者做好后,通过组聚合为客户提供统一的访问地址。我们先创建这三个对应的仓库。输入npm-hosted的名称,选择Blob存储和部署策略。名称:定义一个名称npm-hosted。Blobstore:我们下拉并选择之前创建的专用blob:npm-blob。Deploymentpolicy:在开发环境中,我们运行重复发布,所以我们选择Allowredeploy作为Delpoymentpolicy。npm-proxy输入Name,远程仓库地址,选择Blobstore。名称:定义一个名称npm-proxy。远程存储:上游远程仓库地址,这里填写:https://registry.npmjs.org也可以填写淘宝镜像地址。Blobstore:和hosted一样,选择我们创建的npm-blob。同样输入npm-group名称,选择创建的Blobstore,将前两个创建的代理仓库(npm-proxy)和私有仓库(npm-hosted)从Avaliable区移到Members区。创建后即可使用。首先我们获取npm-group提供的地址,即私有库地址。然后我们就可以使用npminstall命令来安装依赖了。npminstall--registryhttp://ip:port/repository/npm-group/参考文章尔雅讲堂-Nexus安装【Windows】使用Nexus搭建npm私有库,管理npm包,之后在项目中下载阅读中如果觉得对你有帮助,别忘了关注