使用NPM开发时的五种方法

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

从检索https://www.modulecounts.com/2018年10月14日
所有人都在用node。js,如果你没有,隔壁的人可能也在用。既然我们已经建立了这一点,你就必须承认,你的npm注册表可能是日常开发中最重要的资源之一,也是你花费大量时间的地方之一。2022世界杯阿根廷预选赛赛程而时间,一如既往,至关重要。时间永远都不够用,我们经常发现自己在为即将到来的下一个截止日期而流汗。因此,以下是使用JFrog Artifactory和JFrog Xray来满足这些截止日期的五种方法。
1.保持您的远程资源和您的依赖关系密切2022世界杯阿根廷预选赛赛程
在弗朗西斯·福特·科波拉的电影《教父2》中,迈克尔·柯里昂说:“……保持你的朋友
靠近,你的敌人就会更近。”并不是说依赖是你的敌人——除非它们突然被“打击”并从它们的源头消失。
我们写了一个整个文章关于2016年发生的#npmgate,又名#unpublishgate。你可以阅读细节在这里但是让我用一个tl;dr。基本上,两个开发人员在包的名称上有争执。开发人员B赢了,所以开发人员A只是从npmjs.org删除了他们的包。所有这些都是好的和合法的,但有一个“小”副作用,即世界上一半的构建开始失败,因为它们需要Developer A的包作为依赖。尽管如此,还是有一些人继续编码,就好像什么都没发生一样。这些是愉快的开发人员正在使用Artifactory作为他们的npm注册表.
您可以看到,当使用远程存储库时,Artifactory在远程存储库缓存中保存为构建下载的所有依赖项的本地副本。这确保了依赖关系总是可用的,无论远程资源宕机、被删除(咳!)还是网络异常紧张。但是,为了让你的钱更有价值,让所有这些依赖项都随时可用也意味着你的(和你的构建服务器的)npm构建将会更快,因为从本地网络访问它们时没有延迟。

2.确保你的npm注册表安全可靠
我们都喜欢开源组件。它们是当今许多软件开发的核心。但是我们使用的开源组件将许多依赖项拉到我们的软件中。甚至是npm包本身拉入数百个依赖项.但许多开源依赖项都充满了安全漏洞,代码中的安全漏洞的后果可能是“轻微的,没什么大不了的”,也可能是下一个Equifax丑闻。如果这种事发生了,你不可能赶在最后期限前完成,对吧?
幸运的是,您可以采取一些措施来避免安全漏洞。你看,Artifactory有条看门狗叫JFrog x光它会持续扫描你的NPM注册表,寻找安全漏洞,如果出现漏洞,它几乎可以做任何你想做的事情。
您可以定义手表使用任何级别的粒度来捕获脆弱的组件,然后,如果捕获了组件,您可以定义政策它可以做任何事情,从在x射线UI中呈现通知,到触发webhook.一旦发现感染病毒的组件,Xray甚至可以阻止从Artifactory下载该组件,从而阻止团队中的其他人使用该组件。Xray的伟大之处在于,它扫描组件及其所有递归依赖项,剥离每一层,直到清除系统中的每一个开源组件。如果在某个依赖项中发现了隐藏的漏洞,Xray将进行影响分析,以准确地显示哪些组件使用了该漏洞。
3.知道你在承诺什么
不,我不是指您承诺使用哪个Git存储库,我是指法律义务。是的,您正在使用的所有开源组件及其依赖项都附带一个开源许可,您在使用它们时必须遵守该许可。当你在截止日期前一微秒就要发布游戏时,你最不需要的事情就是“法律”因为你使用的是他们没有批准的许可证而大闹一场。好吧,x光又来拯救我们了。
就像Xray可以清除安全漏洞一样,它可以为依赖项中使用的任何被禁止的开放源码许可证提供早期警告,并防止它们进入您的代码。是的,保护安全漏洞的相同的监视和策略也可以检测不需要的OSS许可证。由于x光持续扫描NPM组件,您将收到通知,即使a其中一个组件中的许可证更改了.如果那个西装革履的家伙走进你的办公室说:“嘿,我听说你的npm组件使用了数百个依赖项。我需要一份所有开源许可证的清单。”以前,这意味着你不能回家吃晚饭了,明天的截止日期已经过去了,而现在,这只意味着你需要做x光检查许可证的报告在你收拾行装离开明天的截止日期之前,做好你的准备。
4.为自然灾害做好准备
我说的不是地震和飓风,我说的是硬件故障、短路和其他可能导致服务器宕机的事情。因为,如果那个服务器恰好是你的npm注册表运行的地方,那么,最后期限又来了。当然,除非您正在使用Artifactory。你看,有了Artifactory,你的npm注册表可以高可用性.是的,Artifactory可以设置为一个多节点集群,所以即使其中一个节点宕机,其他节点也可以处理你的npm推和npm拉请求,而你甚至不知道发生了什么。在高可用性配置中,Artifactory最多提供5个9的可用性这意味着您的NPM注册表每年关闭的时间不会超过5.26分钟。即使这些时间都是同时发生的,你仍然可以在截止日期前完成任务。
5.做一个来自所有国家的人
我们已经确定几乎每个人都在使用npm。所以手边有你的内部npm注册表是很好的。但是隔壁那个和Bower一起做前端开发的家伙呢,或者那些需要做前端开发的DevOps人员呢管理Helm海图在某种程度上。然后,当然,您将希望将您的软件打包到Docker映像中,并将它们作为微服务运行。所有这些技术都需要一个安全的私有存储库来管理不同的包及其依赖关系。
好消息是,作为一个通用构件库, Artifactory不仅是一个npm注册表,也是一个码头工人注册表,鲍尔注册表,执掌图表库事实上,它管理工件超过20种不同的技术.尽管Artifactory是通用的,但对于npm开发人员来说,Artifactory就像家一样。Artifactory的包查看器在使用NPM注册中心时,提供了一种本地体验,允许您按版本、作用域甚至校验和在存储库范围内搜索NPM包,并且搜索结果显示NPM特定的元数据。您可以找到一个包的所有版本及其相关关键字,并深入到一个版本以查看完整的详细信息。

你知道了吧。Artifactory和Xray通过五种方式帮助您做您最擅长的事情,并发布不受网络延迟、缺失依赖项、安全漏洞和OSS许可策略影响的代码。但这只是冰山一角。Artifactory还提供细粒度的访问控制,构建集成,高级搜索,广泛REST API还有很多很多。
有了这些触手可及的功能,你不仅能在截止日期前完成任务,还能打败它们!