Angular 调试工具(Augury)

 

目录

1、简介

2、检验代码

3、Angury 本地构建和安装

3.1 添加到Chrome 浏览器:

3.2 添加到Firefox浏览器

4、项目中对应的Npm脚本

5、Augury 三大主要功能

5.1 组件树(Component Tree)

5.1.1 Component Tree

5.2 路由树(Router Tree)

5.3 NgModules

6、Angury 扩展设置

7、其他问题

8、支持 enableDebugTools()


1、简介

Augury是Chrome& Firefox Developer Tools扩展,用于调试Angular 2+应用程序。

github地址是:https://github.com/rangle/augury

您可以从以下位置安装扩展:

  • Chrome 应用商店
  • Fixfox 附加组件
  • Augury 源码编译

2、检验代码

Augury仅适用于Angular 2+应用程序。一个硬性要求是Angular应用程序在开发模式下运行,这是由于安全限制。如果您打算阅读原始源代码,那么生成源映射是个好主意。否则,您将被迫使用编译后的JavaScript代码。

如果是在生成环境,浏览器调试工具,会有一下提示

3、Angury 本地构建和安装

 要安装Angury扩展,需要准备以下环境:

  • Node
  • Npm
  • TypeScript

构建,请执行以下步骤:

git clone git://github.com/rangle/augurycd augury
npm install
npm run build:dev

3.1 添加到Chrome 浏览器:

1、导航到 chrome://extensions 并启用开发者模式,或者单击浏览器右上角->【扩展程序】->【管理扩展程序】,如下图所示:

2、选择“加载未打包的扩展”。

3、在对话框中,打开刚刚克隆的目录。

添加成功之后,如下如所示:

3.2 添加到Firefox浏览器

1、导航至about:debugging#addons以加载附加组件。

2、单击加载临时附加组件

3、在对话框中,打开刚刚克隆的目录,然后选择manifest.json文件。

4、项目中对应的Npm脚本

要查看所有可用的脚本,请键入npm在终端中运行。以下命令是您将主要使用的命令。

Command命令

Description说明

start

Clean build and run webpack in watch mode

在监视模式下清理构建和运行webpack

webpack

Runs webpack in watch mode

在监视模式下运行webpack

build

Builds the extension

构建生成扩展

clean

Clean the build directory,
清理build目录,

test

Bundle all *.test.ts and run it through a headless browser

捆绑所有 *. test.ts并通过无头浏览器运行

lint

Run tslint on all source code
在所有源代码上运行tslint

pack

Packages the extension for browser specific builds

为浏览器特定的生成打包扩展

5、Augury 三大主要功能

5.1 组件树(Component Tree)

Angular 应用程序采用组件结构构建。它通常是组件中的组件,最终形成一个组件树。Augury使您能够可视化和检查组件树,同时访问这些组件的各种属性,所有这些都在Chrome开发工具中。启动应用,如下图所示:

在开发工具Augury标签中,可以组件树的目录展示效果,里面包括3个子标签页面。

1、Component Tree

2、Router Tree

3、NgModules

5.1.1 Component Tree

组件树分为左侧和右边2片区域。

左侧区域:

上面显示的是各个的组件的树形结构。下面搜索框是可以模糊搜索出对应的组件。

右侧区域:

包括2个标签页面(Properties、Injector Graph)

Properties

单击【View Source】链接可以跳转到这个组件对应的源文件里面,这在开发调试的时候还是很有用的,如果组件嵌套太深的找起来也会比较麻烦。

选中app.component.ts组件,单击跳转到了这个源文件里面。如下图所示:

$$el: 把项目整个节点树绑定到window对象,在console面板中可以进行查看,如下图所示:

 下面区域则是改变检测,检测的是当前组件,对应的相关属性,和相关的一些依赖。在这里我们可以看到当前组件定义的所有state,以及改变之后的值,以及一些相关依赖的展示。

Injector Graph

 该标签页包括2部分内容:

1、组件层级

2、注入图

5.2 路由树(Router Tree)

该标签页展示的是项目对应路由树。如下图所示:

5.3 NgModules

展示的是项目对应的Module信息,包括以下及部分信息:

  • Imports

  • Exports

  • Providers

  • DEclaraations

  • ProviderInDeclaration

6、Angury 扩展设置

Angury标签里面,右上角包括3部分:

1、版本号(Angular Version: 5.1.1)

2、刷新按钮

3、设置按钮(...)

单击设置按钮,如下图所示:

设置弹出窗口包括三部分设置:

第一部分:主题选择

第二部分:组件渲染模式

1、Hybrid view (只有在Angular中设置了属性的元素才会包含在树视图中)

 2、All components and elements(在树视图中显示所有组件和元素)

3、Components only(仅显示树视图中的组件)

 

 第三部分:使用数据(是否允许收集使用数据以帮助改进Augury)

7、其他问题

日期polyfill core-js/es6/date会在字符串化组件时引发异常。若要解决此问题,请在开发环境中排除此polyfill。

8、支持 enableDebugTools()

在Angular 2.2.0之前, enableDebugTools()会破坏ng.probe,从而破坏Augury。在该版本之前,此解决方法将绕过该问题。

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带记忆的Transformer模块

MEMORIZING TRANSFORMERS 返回论文和资料目录 论文地址 1.导读 谷歌去年做的一个工作。内容很简单,在Transformer模块中加入了一层记忆层,结果表明这个方法可以帮助模型提高在NLP任务上的表现:generic webtext (C4), math papers (arXiv),…

Generative Adversarial Network

Goodfellow,2014年 文献阅读笔记--GAN--Generative Adversarial NetworkGAN的原始论文-组会讲解_gan英文论文_Flying Warrior的博客-CSDN博客 启发:如何看两个数据是否来自同一个分布? 在统计中,two sample test。训练一个二分类的分类器,如果能分开这两个数据,说明来自…

数据库复习

select 查询 字段别名用 as (可以为中文) 例如 select distinct 关键字 去重复值 例如select distinct deptno from test where 条件过滤 and or 和 not运算符 and同时成立 or有一个成立就可以了 优先级and>or>not不符合(!) in 匹配多个值 selec…

Windows上查看服务器上tensorboad内容

文章目录 前言一、SSH的设置二、tensorboard命令 前言 本篇文章是针对于局域网内的服务器的tensorboard可视化,由于设置方式稍微有点复杂,导致我每次隔了一段时间之后,就不知道该怎么查看tensorboard了,每次都要百度搜一大堆资料…

SpringCloud系列(十六)[分布式搜索引擎篇] - DSL 查询及相关性算分的学习 (部分)

在SpringCloud系列(十五)[分布式搜索引擎篇] - 结合实际应用场景学习并使用 RestClient 客户端 API这篇文章中我们已经对 RestClient 有了初步的了解, 并且已经将一些数据进行了存储, 但是这并不是我们学习 ElasticSearch 的目的, ElasticSearch 最擅长的…

物业管理微信小程序的设计与开发

1.物业管理微信小程序实现的功能 该微信小程序包含小程序端,后台管理端以及后端。 小程序端提供给业主使用,实现的功能模块有公告通知、访客预约、车位申请、装修申请、一键报修、报修单、意见反馈、缴费通知、一键求助、个人信息管理; 后台…

arcgis建筑物平均高度

主要用到相交和属性表的汇总功能。 路网 建筑物栋 相交结果 右键,bh列汇总 原始块有392,这里只有389,说明有的地块没有建筑,所以应该将表连接到原始街区上检查是否合理,以及随机验证一个结果是否正确。 连接结果&…

Spring6.0 源码部署

环境依赖 Git JDK17 Gradle(版本号需要和Spring源码中的版本一致) 源码下载 官网地址 源码配置修改 maven { url "https://maven.aliyun.com/repository/central" }gradle-wrapper.properties #distributionUrlhttps\://services.gradle…

无虚拟 DOM 版 Vue 进行到哪一步了?

前言 就在一年前的 Vue Conf 2022,尤雨溪向大家分享了一个非常令人期待的新模式:无虚拟 DOM 模式! 我看了回放之后非常兴奋,感觉这是个非常牛逼的新 feature,鉴于可能会有部分人还不知道或者还没听过什么是 Vue 无虚…

Excel-公式VLOOKUP 使用方法-小记

个人愚见 表示 MongoDB列中的任意一条数据 在 MySQL列 精确查找 和MongoDB列 中一模一样的数据,有的话返回MongoDB列数据,没有话返回#N/A 官方解释

【Web安全】小白怎么快速挖到第一个漏洞,src漏洞挖掘经验分享,绝对干货!

src漏洞挖掘经验分享 – 掌控安全以恒 一、公益src 公益src是一个白帽子提交随机发现的漏洞的品台,我们可以把我们随机发现或者是主动寻找到的漏洞在漏洞盒子进行提交。 在挖掘src的时候不能越红线,一般情况下遇到SQL注入 只获取数据库名字以证明漏洞的…

myAgv的slam算法学习以及动态避障下篇

引言 在之前的一篇文章中有提到购入了一台myAGV,以树莓派4B为控制核心的移动机器人。上篇文章中向大家介绍了myAGV如何实现建图、导航以及静态避障,但我们深知,这只是机器人自主导航能力的基础。在实际应用场景中,机器人需要面对复…

【C语言+sqlite3 API接口】实现水果超市

实验内容: 假如我家开了个水果超市,有以下水果,想实现自动化管理,扫描二维码就能知道当前的水果状态,进货几天了, 好久需要再次进货,那些水果畅销,那些水果不畅销,那些水…

selenium查找svg元素

目录 如何为SVG元素编写XPath 使用local-name()的语法 需要记住的一点 将“and”与SVG元素一起使用 如何定位嵌套的SVG元素? XPath是一种用于定位XML文档中的web元素的语言,包括构成网页的HTML文档。在Selenium中&#xff0…

【计算机视觉】DINOv2(视觉大模型)代码四个不同模型的对比,以 28 * 28 的图像为例(完整的源代码)

文章目录 一、ViT-S/14二、ViT-B/14三、ViT-L/14四、ViT-g/14 一、ViT-S/14 import torch import torchvision.transforms as T import matplotlib.pyplot as plt import numpy as np import matplotlib.image as mpimg from PIL import Image from sklearn.decomposition im…

ES系列--es进阶

一、系统架构 一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者 从集群中移除节点时,集群将会重新平均分布所有的数据。 …

准备WebUI自动化测试面试?这30个问题你必须掌握(一)

本文共有8600字,包含了前十五个问题,如需要后十五个问题,可查看文末链接~ 1. 什么是WebUI自动化测试? WebUI自动化测试是指使用自动化测试工具和技术来模拟用户在Web用户界面(UI)上执行操作,并…

动态内存管理(C语言)

动态内存管理 1. 为什么存在动态内存管理2. 动态内存函数的介绍2.1 malloc函数和free函数2.2 calloc函数2.3 realloc函数 3. 常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态开辟空间的越界访问3.3 对非动态开辟内存使用free函数3.4 使用free释放动态开辟内存的一部分…

Python爬虫——urllib_ajax的get请求爬取豆瓣电影前十页

ajax: 就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: 一定会有 url,请求方法(get, post),可能有数据一般使用 j…

京东自动化功能之商品信息监控是否有库存

这里有两个参数,分别是area和skuids area是地区编码,我这里统计了全国各个区县的area编码,用户可以根据实际地址进行构造skuids是商品的信息ID填写好这两个商品之后,会显示两种状态,判断有货或者无货状态,详情如下图所示 简单编写下python代码,比如我们的地址是北京市…