在使用NPM进行开发时满足最后期限的五种方法

JFrog人工npm注册表

Node.js已经成为当今最流行的开发技术。别相信我的话,你可以看看Stack Overflow的2018年调查吗。如果这还不够,那就进来吧www.modulecounts.com并了解公共开源NPM注册中心中的包如何远远超过其他技术中的包。

Npm模块数

从检索https://www.modulecounts.com/2018年10月14日

每个人都在用node。js,如果你不用,隔壁可能有人在用。既然我们已经确定了这一点,那么您必须同意npm注册表可能是您日常开发中最重要的资源之一,也是您花费大量时间的地方之一。2022世界杯阿根廷预选赛赛程时间,一如既往,是至关重要的。时间永远都不够,我们经常发现自己在为下一个迫在眉睫的截止日期而汗流浃背。因此,这里有五种方法可以使用JFrog Artifactory和JFrog Xray来满足这些截止日期。

1.保持远程资源和依赖关系的紧密2022世界杯阿根廷预选赛赛程

在弗朗西斯·福特·科波拉的电影《教父2》中,迈克尔·柯里昂说:“……留住你的朋友。靠近,你的敌人更近。”并不是说依赖关系是你的敌人——除非它们突然被“打击”并从源头消失。

我们写了整个文章关于2016年发生的#npmgate,也就是#unpublishgate。你可以阅读细节在这里不过,让我用一个词来唤起你的记忆吧。基本上,两个开发人员在包的名称上发生了争执。开发者B赢了,所以开发者A从npmjs.org上删除了他们的包。所有这些都是好的和合法的,但有一个“小”的副作用,即世界上一半的构建开始失败,因为它们需要开发人员A的包作为依赖。然而,有些人只是继续编码,好像什么都没发生。这些都是快乐的开发者在使用Artifactory作为它们的npm注册表

您可以看到,当使用远程存储库时,Artifactory会在远程存储库缓存中保存为构建下载的所有依赖项的本地副本。这确保了依赖项始终可用,无论远程资源宕机、被删除(咳咳!)还是网络异常紧张。但是为了更物有所值,拥有所有这些依赖项也意味着您的(和您的构建服务器的)npm构建会更快,因为从本地网络访问它们时没有延迟。

JFrog人工npm注册表

2.确保你的npm注册表安全可靠

我们都喜欢开源组件。它们是当今开发的许多软件的核心。但是我们使用的开源组件将许多依赖关系拉入我们的软件中。甚至是npm包本身引入数百个依赖项。但是很多开源依赖都充斥着安全漏洞代码中安全漏洞的后果可能是“微不足道,没什么大不了的”,也可能是下一个Equifax丑闻。如果这样的事情发生了,你不可能在最后期限前完成,对吧?

幸运的是,您可以采取一些措施来避免安全漏洞。你看,神器工厂有只看门狗叫JFrog x光它会持续扫描你的NPM注册表,寻找安全漏洞,而且,如果有漏洞出现,它几乎可以做任何你想做的事情。

你可以定义手表使用任何级别的粒度来捕获易受攻击的组件,然后,如果一个组件被捕获,您可以定义政策从在Xray UI中显示通知到触发webhook。一旦发现受感染的组件阻止团队中的其他人使用,Xray甚至可以阻止从Artifactory下载受感染的组件。Xray的伟大之处在于,它扫描组件及其所有递归依赖项,剥离每一层,直到系统中的每个开源组件都被清除。如果在某个依赖项中发现潜伏的漏洞,Xray将进行影响分析,以准确地显示哪些组件使用了该漏洞。

3.知道你要做什么

不,我不是指您要提交哪个Git存储库,我指的是法律义务。是的,您正在使用的所有开源组件及其依赖项都附带一个开源许可,当您使用它们时,您有义务遵守该许可。在截止日期前一微秒就要发布时,你最不需要的就是“法律”因为你使用了他们没有批准的许可证而大吵大闹。好吧,x光再次拯救了我们。

就像Xray可以清除安全漏洞一样,它可以对依赖项中使用的任何禁止的开源许可提供早期警告,并防止它们进入您的代码。是的,防止安全漏洞的相同的监视和策略也可以检测不需要的OSS许可证。自从x射线持续扫描你的NPM组件,即使a其中一个组件的许可证发生了变化。如果那个西装革履的家伙走进你的办公室说:“嘿,我听说你的npm组件使用了数百个依赖项。我需要其中所有开源许可证的列表。”以前,这意味着你不能回家吃晚饭,明天的截止日期也快到了,而现在,这只意味着你需要做x光检查许可证的报告在你开始收拾行李出门之前,明天的最后期限已经完成了。

4.为自然灾害做好准备

我说的不是地震和飓风,我说的是硬件故障、短路和其他任何可能导致服务器崩溃的情况。因为,如果那个服务器恰好是你的npm注册表运行的地方,那么最后期限又要到期了。当然,除非您正在使用Artifactory。你看,使用Artifactory,你的npm注册表可以是高可用性。是的,Artifactory可以设置为一个多节点集群,所以即使其中一个节点宕机,其他节点也可以处理你的npm push和npm pull请求,而你甚至不会意识到发生了什么。在高可用性配置中,Artifactory提供高达5个9的可用性这可能意味着您的NPM注册表每年的停机时间不会超过5.26分钟。即使这些时间同时发生,你仍然可以在最后期限前完成任务。

5.做所有国家的人

我们已经确定,几乎每个人都在使用npm。所以手头有你自己的npm注册表是很好的。但是隔壁房间里和Bower一起做前端开发的人,或者需要做前端开发的DevOps人员呢管理舵图在某种程度上。然后,当然,您将希望将软件打包到Docker映像中,并将其作为微服务运行。所有这些技术都需要一个安全的私有存储库来管理不同的包及其依赖关系。

好消息是,作为一个通用工件存储库Artifactory不仅是一个npm注册表,也是一个码头工人注册表鲍尔注册表舵图存储库事实上,它为超过20种不同的技术。尽管Artifactory是通用的,但对于npm开发人员来说,Artifactory就像家一样。Artifactory的包查看器在使用NPM注册表时提供一种本地体验,允许您根据版本、范围甚至校验和在整个存储库范围内搜索NPM包,搜索结果显示NPM特定的元数据。您可以找到包的所有版本及其相关的关键字,并向下钻取到一个版本以查看完整的详细信息。

就是这样。Artifactory和Xray有五种方法可以帮助您做您最擅长的事情,并且不受网络延迟、缺少依赖项、安全漏洞和OSS许可策略的阻碍发布代码。但这仅仅触及了表面。Artifactory还提供细粒度访问控制构建集成高级搜索,广泛REST API还有很多很多。

有了这些触手可及的能力,你不仅能按时完成任务,还能战胜它们!

想赶在最后期限前完成任务?开始免费试用