热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Eunice中使用Polly.JS依赖项

在本文中,我将通过在JavaScript库Polly.JS上使用Eunice来演示开发工具。我以前发布过一个关于在React上使用Eunice的案例研究;

在本文中,我将通过在Javascript库Polly.JS上使用Eunice来演示开发工具。

我以前发布过一个关于在React上使用Eunice的案例研究; 但是,这不是对Eunice的出色介绍。 它有几个配置步骤,React更复杂,并且在Eunice中有很多展示。

Eunice 7.3中还有一个新功能,可以自动从依赖项中推断出潜在的结构。 在该功能之前,仅通过手动编写YAML指定文件和目录时才存在此结构。 即使正在分析的源代码已经具有协调的单向依赖关系,情况也是如此。

Eunice分析Javascript源代码,因此我从GitHub存储库https://github.com/Netflix/pollyjs克隆了0003c0e提交。

git clone https ://github.com/Netflix/pollyjs.git pollyjs-eunice
cd pollyjs-eunice
git reset --hard 0003 c0e

可以从NPM下载Eunice并运行它,而无需使用NPX进行安装:

npx eunice

系统将提示您接受EULA。 Eunice可免费用于开源项目,也可免费用于教育和培训。 因此,对Polly.JS的贡献以及后续的案例研究均符合资格。 还有一个评估期,可以试用Eunice的封闭源商业软件。

分析将输出一个eunice.html文件。 在浏览器中打开文件显示以下内容:

文本编辑器的左侧显示了Eunice对Polly.JS的分析产生的6,927行YAML 。

右侧是Polly.JS中所有依赖项和根目录的图形表示。 绿色和红色计数箭头代表相关性,分类如下:

1,102个匹配(绿色)和仅22个(红色)不匹配的依赖项表明Eunice在Polly.JS中发现绝大多数依赖项是单向的。 已经发现的一些双向依赖关系位于目录结构的深处(例如,包中的17个),即使有任何后果,也不太可能造成太大的影响。

上面显示的根目录中没有堆栈; 但是,选择packages / @ pollyjs子目录将显示其内容之一:

上面显示的5个级别的排列未在源代码中指定,并且已由Eunice推断出。 仅当项目具有单向依赖性时,它才会这样做。

即使没有任何有关Polly.JS如何工作的先验知识,许多目录之间的关系似乎也很直观。 例如:

cli位于顶层,因为它可能是运行其他事物的一种方式。core位于中间层,它可能是由项目的其他部分构建的,但是还使用了与其余部分共享的一些较低层的功能project.adapter和persister的级别位于第二到底部级别。 它们的名称不像其他适配器和持久器那样具体,因此其他名称可能会扩展它们。utils在底层是自己的,因为它在其他地方使用,但本身并未使用任何东西。

可以通过选择计数箭头来调查Eunice找到的依赖关系,这会列出其中包含的依赖关系。 例如,cli下的单个依赖项位于节点服务器上:

Eunice显示了依赖关系两侧的计数箭头。 上面示例中的依赖项也作为依赖项包括在上面的3个节点服务器中:

也可以选择核心上方的从属箭头,以调查上述项目如何使用它:

依赖核心的人似乎只是在使用它进行集成测试,而上面的内容似乎在运行时没有使用它。 查看Polly.JS入门页面 ,您可以看到运行时在核心注册了上面的适配器和持久性。 这看起来像是插件关系形式的潜在倒置依赖关系。

可以对适配器进行相同类型的依赖项调查:

依赖项列表显示了上面使用它的几个适配器,并查看Polly.JS定制适配器页面,确认至少获取并对其进行了xhr扩展。

核心对适配器有依赖性,但这仅用于测试。

我上面研究过的packages / @ pollyjs目录用于创建NPM软件包,因此至少在运行时看到存在单向依赖关系就不足为奇了。 但是,似乎跨这些软件包的集成测试也具有单向依赖性。

Eunice还可以用于调查包的子目录内部。 在这里,跨目录结构可能存在运行时双向依赖关系。 由于Polly.JS中似乎没有任何内容,因此在本案例研究中我没有这样做。 如果您想对此进行演示,请参阅React案例研究 。

您可以在此处与该案例研究的Eunice分析进行交互。

即使Eunice显示Polly.JS已经具有单向依赖关系,但在进行此类项目时使用Eunice仍然是有益的。

通过强调可以在新组中命名的通用性,例如通过将文件和目录移动到新目录中,Eunice可能显示出附加结构的潜力,从而使代码更具自描述性。

刚接触该项目的人可能没有意识到依赖关系是与目录结构协调一致的。 使用Eunice查看结构和依赖性可以帮助提高意识。

代替Eunice推断堆栈,可以在源代码控制中指定它们,从而规范化关系并使每个人都清楚它们是有意的。

在https://devsnicket.com/eunice上找到更多信息

格雷厄姆·戴森(Graham Dyson)-Eunice的创造者

先前发布在https://devsnicket.com/eunice/case-studies/pollyjs

From: https://hackernoon.com/how-to-use-pollyjs-dependencies-with-eunice-1a5b3yjv



推荐阅读
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • 腾讯T3大牛亲自教你!2021大厂Android面试经验,经典好文
    本篇将由环境搭建、实现原理、编程开发、插件开发、编译运行、性能稳定、发展未来等七个方面,对当前的ReactNative和Flutter进行全面的分析对比, ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
  • 程度|也就是_论文精读:Neural Architecture Search without Training
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文精读:NeuralArchitectureSearchwithoutTraining相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了自学Vue的第01天的内容,包括学习目标、学习资料的收集和学习方法的选择。作者解释了为什么要学习Vue以及选择Vue的原因,包括完善的中文文档、较低的学习曲线、使用人数众多等。作者还列举了自己选择的学习资料,包括全新vue2.5核心技术全方位讲解+实战精讲教程、全新vue2.5项目实战全家桶单页面仿京东电商等。最后,作者提出了学习方法,包括简单的入门课程和实战课程。 ... [详细]
  • RN即ReactNative基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,R ... [详细]
  • ReactJSUIAnt设计空组件原文:https://w ... [详细]
  • 认识Vue关于Vue的描述有不少,不外乎都会拿来与Angular和React对比,同样头顶MVVM双向数据驱动设计模式光环的Angular自然被对比的最多,但到目前为止,Angul ... [详细]
author-avatar
高度的寂寞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有