Augury
Table of content
- Introduction
- Supported version
- Working on Augury
- Building and installing locally
- Supported version
- Working on Augury
- Running tests
- Reporting issues
- Contributing
- Known issues
Introduction
Augury is a Chrome & Firefox Developer Tools extension for debugging Angular 2+ applications.
You can install the extension from:
You may also install our Canary Build for Chrome to try out new features and bug fixes, and help us with user acceptance testing.
Inspecting Code
Augury only works with Angular 2+ applications. A hard requirement is that the Angular application is running in development mode, this is due to a security restriction. If you plan to read the original source code, it is a good idea to generate source maps. Otherwise you will be forced to work with the compiled JavaScript code.
Supported version
Augury works with application built starting with Angular 2+.
Working on Augury
Development environment
To develop the Augury extension, the following environment is used:
- Node
- NPM
- TypeScript
Building and installing locally
git clone git://github.com/rangle/augury
cd augury
npm install
npm run dev-build
Try out the extension with one of the example app from the Guide.
Chrome
- Navigate to
chrome://extensions
and enable Developer mode. - Choose "Load unpacked extension".
- In the dialog, open the directory you just cloned.
Firefox
- Navigate to
about:debugging#addons
to load add-on. - Click Load Temporary Add-on
- In the dialog, open the directory you just cloned.
Running tests
To execute all unit tests, run npm test
. It bundles up all files that match *.test.ts
into build/test.js
, then runs it through tape-run in a headless Electron browser.
Available NPM scripts
To see all available script type npm run
in the terminal. The following command are the ones you will mostly be working with.
Command | Description |
---|---|
start |
Clean build and run webpack in watch mode |
webpack |
Runs webpack in watch mode |
build |
Builds the extension |
clean |
Clean the build directory, |
test |
Bundle all *.test.ts and run it through a headless browser |
lint |
Run tslint on all source code |
pack |
Packages the extension for browser specific builds |
Reporting issues
Please search to make sure your issue is not already been reported.
You should report an issue directly from Augury, by clicking on the Augury icon next to the address bar in the browser. It will open up a popup menu with a link to Issue reporting.
Contributing
General guidelines
If you'd like to help out, please read our Contributing Guidelines.
Augury Architecture
You might want to first checkout the Architecture of this extension.
Join on Slack
If you want to contribute or need help getting started, join us on Slack.
Known issues
Router graph
The router injection technique described below applies to version before those listed below:
Angular v2.3.0
Angular Router v3.3.0
Augury v1.2.8
To be able to view the router graph, you will need to inject the Router in the application Root component as shown below (it must be named router
exactly).
export default class KitchenSink {
constructor(private router: Router) {
}
}
Support for AoT (Ahead-Of-Time) compilation
In order for Angular to expose the debug information for AoT applications, you will have to explicitly set the debug flag to true
in your project's tsconfig.json
as such:
"angularCompilerOptions": {
/* ... */
"debug": true
}
Note: This debug flag and development mode
in Angular runtime are two completely different settings.
To learn more about AoT compilation, visit this section of Angular documentation.
enableDebugTools()
Support for Prior to Angular 2.2.0, enableDebugTools()
would clobber ng.probe
, which breaks Augury. Prior to that version, this workaround will circumvent the issue.