rangle / augury-labs Goto Github PK
View Code? Open in Web Editor NEWExperimental Angular developer tools
Home Page: https://augury.rangle.io
License: MIT License
Experimental Angular developer tools
Home Page: https://augury.rangle.io
License: MIT License
Describe the solution you'd like
Update Augury Labs frontend to run Angular 8.
It would be nice to leverage schematics to setup the basic bootstrap procedure.
Lazy loaded modules cannot currently be profiled due to how augury-labs
wraps the angular boostrap process on startup and looks for metadata in the registered modules. The same metadata / bootstrap process will need to also occur when a module is first loaded.
Looks to me like the core framework is pretty framework-agnostic and could be used to debug React apps with little changes, particularly the bootstrapping part.
The probes and the plugins are Angular specific and for React, we would need to write new ones, but the dispatch bus should work as is.
I would like to use this to debug my React app. For example I like to know which of my components are re-rendering, how many times and why are they re-rendering.
I could take a go at it to support debugging React apps using Augury?
On https://github.com/gdgtc/devfest/:
Error after setting it up in main.augury.ts and angular.json:
Uncaught TypeError: Cannot read property '0' of undefined
at Object.push../node_modules/@augury/core/dist/probes/shared-helpers/ng-module/index.js.exports.getAnnotationsFromModule.module [as getAnnotationsFromModule] (index.js:13)
at Object.push../node_modules/@augury/core/dist/probes/shared-helpers/ng-module/index.js.exports.getImportedModulesFromModule.module [as getImportedModulesFromModule] (index.js:22)
at reduce (index.js:23)
at Array.reduce (<anonymous>)
at Object.push../node_modules/@augury/core/dist/probes/shared-helpers/ng-module/index.js.exports.getImportedModulesFromModule.module [as getImportedModulesFromModule] (index.js:23)
at reduce (index.js:23)
at Array.reduce (<anonymous>)
at Object.push../node_modules/@augury/core/dist/probes/shared-helpers/ng-module/index.js.exports.getImportedModulesFromModule.module [as getImportedModulesFromModule] (index.js:23)
at reduce (index.js:23)
at Array.reduce (<anonymous>)
Problem:
When looking at the timeline, it's clear that Augury's impact when collecting data is too large.
Augury's CPU usage is many times that of the example app. When using Augury to profile an app with performance issues, it makes the application freeze.
The core is quite lean, and the UI uses a timed repaint strategy to avoid repainting every time it gets new data.
Possible bottleneck:
performance-profiler-plugin
does some pretty heavy tree traversals every time it gets new data (which happens extremely often). These could probably be optimized or avoided.
Thoughts?
Is your feature request related to a problem? Please describe.
Pop up windows are blocked on certain restrictive setups and security concerns block my ability to allow a pop up in order to allow Augury Labs to run.
Describe the solution you'd like
Add option that can be passed to open Augury labs some other way, maybe a link provided when the build is run in the terminal rather than automatically opening a popup.
> ng add @augury/schematics
warning " > @augury/[email protected]" has unmet peer dependency "@angular-devkit/core@~7.3.7".
warning " > @augury/[email protected]" has unmet peer dependency "@angular-devkit/schematics@~7.3.7".
warning " > @augury/[email protected]" has unmet peer dependency "@schematics/angular@^7.3.7".
compiler.js:21563 Uncaught Error: No NgModule metadata found for 'AppModule'.
at NgModuleResolver.resolve (compiler.js:21563)
at CompileMetadataResolver.getNgModuleMetadata (compiler.js:20688)
at JitCompiler._loadModules (compiler.js:26460)
at JitCompiler._compileModuleAndComponents (compiler.js:26443)
at JitCompiler.compileModuleAsync (compiler.js:26405)
at CompilerImpl.compileModuleAsync (platform-browser-dynamic.js:224)
at compileNgModuleFactory__PRE_R3__ (core.js:41348)
at PlatformRef.bootstrapModule (core.js:41725)
at auguryBootstrap (augury-bootstrap.function.js:6)
at Module../src/main.ts (main.ts:9)
In the past 7 months, no code changes have been made, no PRs have been merged, and no issues have been touched.
It would be nice to update this to work with Ivy and the latest Angular. If you guys don't plan on supporting it, please say so and your users can move on.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.