Angular 调试工具(Augury)

news2024/10/7 13:24:50

 

目录

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.coloradmin.cn/o/726783.html

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

相关文章

HarmonyOS学习路之开发篇—数据管理(对象关系映射数据库)

HarmonyOS对象关系映射(Object Relational Mapping,ORM)数据库是一款基于SQLite的数据库框架,屏蔽了底层SQLite数据库的SQL操作,针对实体和关系提供了增删改查等一系列的面向对象接口。应用开发者不必再去编写复杂的SQ…

港联证券|如何区分大盘股和小盘股?

1、依据个股的市值来区别。一般来说,大盘股:流转市值在500亿及以上,小盘股:流转市值一般在50亿及以下,市值在二者之间的被称为中盘股。 2、依据流转股本区别。一般来说,大盘股:流转股本大于5亿&…

mysql重点复习

1.MySQL如何对用户smart授权访问,密码为123456。 2.授权用户tom可以在网络中的192.168.4.254主机登录,仅对对userdb库下的user表有查看记录、更新name字段的权限 , 登录密码userweb888。 GRANT SELECT,UPDATE(name) ON userdb.user TO tom192…

零拷贝小结

零拷贝(Zero-copy)是一种优化技术,用于减少数据传输过程中的拷贝操作,从而提高系统性能和效率。在传统的数据传输中,涉及多个缓冲区之间的数据拷贝操作(例如从磁盘到内存的拷贝、内存到网络缓冲区的拷贝等&…

gitlab ci/cd+harbor+k8s实现一键部署(python项目)

大致架构: gitlab变量 使用 kaniko 构建 Docker 镜像 .gitlab-ci.yml stages:- test- build- deployvariables:DOCKERFILE: "Dockerfile2"CONTAINER_IMAGE: "archeros/workspace/platform"GIT_SSL_NO_VERIFY: "true"before_script…

canvas.js、node-canvas的坑

一、依赖下载后半天没 install 完,最后还报错, \node_modules\canvas: Command failed. Exit code: 1 Command: node-pre-gyp install --fallback-to-build Arguments: 解决方法:官方: Installation: Windows Automattic/node-ca…

ArcGis如何通过Python进行插件开发?

文章目录 0.引言1.准备Python加载项工具2.创建一个加载项工具3.编写代码4.生成安装文件5.安装和调出加载项6.使用加载项 0.引言 ArcGIS 插件(Add-ins)可以让用户更加容易的自定义和扩展ArcGIS Desktop应用程序,它创建一系列自定义工具提供了一…

Linux基础_3

一、Linux安全模型 资源分派: Authentication: 认证:验证用户身份Authorization: 授权:不同的用户设置不同权限Accouting|Audition: 审计 当用户成功登录时,系统会自动分配令牌token,包括:用户标识…

从CPU缓存结构到原子操作

文章目录 一、CPU缓存结构1.1 CPU的多级缓存1.2 Cache Line 二、写回策略三、缓存一致性问题及解决方案3.1 缓存一致性问题3.2 解决方案3.2.1 总线嗅探3.2.2 事务的串行化3.2.3 MESI 四、原子操作4.1 什么是原子操作4.2 c 标准库的原子类型4.2.1 atomic<T\>4.2.2 is_lock…

软件安全测试流程与方法分享(上)

安全测试是在IT软件产品的生命周期中&#xff0c;特别是产品开发基本完成到发布阶段&#xff0c;对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性&#xff0c;安全测试也是软件测试重的一个重要类别&#xff0c;本系列文章我们与…

MySQL简单查询操作

系列文章目录 前言SELECT子句SELECT后面之间跟列名DISTINCT,ALL列表达式列更名 WHERE子句WHERE子句中可以使用的查询条件比较运算特殊比较运算符BETWEEN...AND...集合查询&#xff1a;IN模糊查询&#xff1a;LIKE空值比较&#xff1a;IS NULL 多重条件查询 ORDER BY子句排序复杂…

线性规划解的概念

一、线性规划的可行解 若x1,x2满足条件[1]-[4],则称向量为线性规划问题的一个可行解。 例如 其中x(1),x(2)为可行解&#xff0c;而x(3),x(4)不是可行解。 二、线性规划的可行域 所有可行解构成的集合称为该线性规划的可行域。 三、线性规划的最优解 使目标函数最大或最小的…

Git ① 通过git将本地两个项目进行合并

一、新建一个本地仓库 ① 新建一个文件夹&#xff0c;打开之后在命令行输入git init 初始化仓库。 git init ② 在新建的文件夹中随便创建一个文件&#xff08;这样才能新建新的分支&#xff0c;不然新建分支命令没有作用&#xff09; ③ 输入命令 git add . 和 git commit…

如何实现对视频录像文件的AI算法分析?

有用户提出需求&#xff0c;提供视频文件给平台&#xff0c;并进行AI算法分析。值得一提的是&#xff0c;我们的平台不仅仅可以基于AI算法&#xff0c;对设备实时传输的视频流进行分析&#xff0c;也能对视频回放录像文件进行智能分析。那么是如何实现的呢&#xff1f; EasyDSS…

Linux 共享内存

概念&#xff1a; 在Linux系统中&#xff0c;共享内存是一种用于进程间通信的机制&#xff0c;它允许多个进程共享同一块内存区域。 Linux 共享内存的作用和目的&#xff1a; Linux共享内存的主要目的是在不同的进程之间实现高效的数据交换和共享。它可以用于以下几个方面&…

在uniapp 小程序 vue中报 错 Cannot read property ‘substring‘ of undefined

是因 是因为对字符串使用substring的时候页面中的数据还没有加载 。 错误代码&#xff1a; 可以使用 v-if 修改为&#xff1a;

Alibaba官方上线!SpringBoot+SpringCloud全彩指南(终极版)

Alibaba作为国内一线互联网大厂&#xff0c;其中SpringCloudAlibaba更是阿里微服务最具代表性的技术之一&#xff0c;很多人只知道SpringCloudAlibaba其实面向微服务技术基本上都有的下面就给大家推荐一份Alibaba官网最新版&#xff1a;SpringSpringBootSpringCloud微服务全栈开…

2023 WAIC | 自然机器人向全球传递新一代智能自动化之声

2023年7月6日-7月8日&#xff0c;备受瞩目的“2023世界人工智能大会”在上海世博中心及世博展览馆隆重召开&#xff0c;本届大会的主题是“智联世界&#xff0c;生成未来”&#xff0c;大会由上海市人民政府和国家发改委、工信部、科技部、国家网信办、中国科学院、中国工程院、…

JavaScript实现归并排序算法详解

JavaScript实现归并排序算法详解 说明 归并排序&#xff08;Merge Sort&#xff09;算法&#xff0c;也叫合并排序&#xff0c;是创建在归并操作上的一种有效的排序算法。算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用&#xff0c;且各层…

Talk预告 | 南洋理工大学助理教授潘新钢:拖动你的GAN - 在生成图像流形上基于控制点的交互式图像编辑

本期为TechBeat人工智能社区第511期线上Talk&#xff01; 北京时间7月6日(周四)20:00&#xff0c;南洋理工大学 助理教授—潘新钢的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “拖动你的GAN - 在生成图像流形上基于控制点的交互式图像编辑”&…