Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


A powerful client-side router.

Subscribe to updates I use router

Statistics on router

Number of watchers on Github 111
Number of open issues 72
Average time to close an issue 17 days
Main language JavaScript
Average time to merge a PR 7 days
Open pull requests 37+
Closed pull requests 29+
Last commit about 2 years ago
Repo Created over 5 years ago
Repo Last Updated about 2 years ago
Size 1.99 MB
Organization / Authoraurelia
Latest Release1.5.0
Page Updated
Do you use router? Leave a review!
View open issues (72)
View router activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating router for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


npm Version ZenHub Join the chat at https://gitter.im/aurelia/discuss CircleCI

This library is part of the Aurelia platform and contains a powerful client-side router.

To keep up to date on Aurelia, please visit and subscribe to the official blog and our email list. We also invite you to follow us on twitter. If you have questions look around our Discourse forums, chat in our community on Gitter or use stack overflow. Documentation can be found in our developer hub. If you would like to have deeper insight into our development process, please install the ZenHub Chrome or Firefox Extension and visit any of our repository's boards.

Platform Support

This library can be used in the browser only.

Building The Code

To build the code, follow these steps.

  1. Ensure that NodeJS is installed. This provides the platform on which the build tooling runs.
  2. From the project folder, execute the following command:
  npm install
  1. Ensure that Gulp is installed. If you need to install it, use the following command:
  npm install -g gulp
  1. To build the code, you can now run:
  gulp build
  1. You will find the compiled code in the dist folder, available in three module formats: AMD, CommonJS and ES6.

  2. See gulpfile.js for other tasks related to generating the docs and linting.

Running The Tests

To run the unit tests, first ensure that you have followed the steps above in order to install all dependencies and successfully build the library. Once you have done that, proceed with these additional steps:

  1. Ensure that the Karma CLI is installed. If you need to install it, use the following command:
  npm install -g karma-cli
  1. Ensure that jspm is installed. If you need to install it, use the following commnand:
  npm install -g jspm
  1. Install the client-side dependencies with jspm:
  jspm install
  1. You can now run the tests with this command:
  karma start
router open issues Ask a question     (View All Issues)
  • over 3 years router-view should render template attributes
  • over 3 years Page refresh reverts to App configureRouter
  • over 3 years Ability to ignore a specific URL/link
  • over 3 years Dynamic routes only set when page is refreshed
  • over 3 years Child router parameters in route with special characters behavior is unpredictable
  • over 3 years RouteConfig settings changes not retained
  • over 3 years Option to specify page title separator
  • over 3 years when using multiple viewports routes must specify module for each viewport
  • over 3 years Router Documentation Improvement
  • over 3 years deactivate() does not invoked after navigate to other router module.
  • over 3 years Inconsistent behavior when returning Redirect object from canActivate() on navigate vs deep link page load
  • over 3 years Child routes with same name lead to unpredictable behaviour
  • over 3 years redirect to route with navigationStrategy not working
  • over 3 years Property 'router' does not exist on type 'NavigationInstruction'.
  • almost 4 years router isActive property not correct
  • almost 4 years <base> tag breaks svg id's
  • almost 4 years Support external routes in router configuration
  • almost 4 years Load route viewModel module from external location or via alternative resolve strategy
  • almost 4 years Child Route activate() called before childRouter has refreshed baseUrl
  • almost 4 years Better error message for Invalid route config
  • almost 4 years Navigate to the unknown route
  • almost 4 years Warn About Duplicate Route Names
  • almost 4 years Strange Rendering Behavior since 1.1.4 release
  • almost 4 years Information about child route in navigationInstruction
  • almost 4 years Router silently fails
  • almost 4 years doc outline
  • about 4 years Localizing title
  • about 4 years Router should get context path when starting up
  • about 4 years Add view ports in the skeleton-navigation
  • about 4 years previousInstruction on currentInstruction
router open pull requests (View All Pulls)
  • feat(router): generate absolute URI from router
  • feat(PipelineProvider): add methods for removing pipeline steps
  • Added main attribute to bower.json, which will help in creating context menu map for aurelia-webpack use with bower packages.
  • fix(router): router is case sensitive by default
  • feat(router): observables in lifecycle
  • feat(router): add extension to transform title when built
  • Publishes an inner instruction resolve
  • Add doc for optional parameters
  • fix(tsd): define router property in NavigationInstruction
  • Fix wrong attribute on router-view example
  • Updates the navigation strategy to handle and expect a resolved strin…
  • doc(typescript): fix mapUnknownRoutes Typescript compile error
  • WIP: caching
  • Fallback route config
  • fix(router): getBaseUrl() to return correct URL for encodable chars
  • fix(router): invoke deactivate method on child modules
  • doc(router): fix section number for Fallback Route
  • enhancement(router): enable lazy load feature when navigating to route
  • fix(router): browser history state not empty on new entries in IE/Edge
  • Update router-configuration.md
  • feat(router): enable parent chain unknown route handlers
  • feat(router) add navigation flags
  • fix(navigation-instruction): fix the order of delayed swaps.
  • doc(router-configuration): fix layoutModel/layoutViewModel sample
  • Chore/ignore unknown routes
  • chore(package.json): fix json formatting
  • fix(navigation): add NavigationResult type
  • feat(router): add params to navigate()
  • feat(router): stateful routes
  • fix(router): child recognizer and catchAllHandler
  • test(router): fix promise catch logging
  • test(router): test multiple identical patterns
  • feat(router): redirect with token parameters
  • fix(router-configuration): merge options instead of assign in exportRouter
  • fix(router): make addRoute split list of routes into multiple routeco…
  • feat(type declarations): improve type of RouterConfiguration
  • feat(router): add configurable title separator
router questions on Stackoverflow (View All Questions)
  • Angular 2 Router error, Route config should contain exactly one "component", "loader", or "redirectTo" property
  • Angular new router how to define a default route when no mapped route
  • Raspberry Pi 2 model to be connected in the LAN router
  • Require / Angular / Karma / ui-router - Error: Could not resolve 'landing' from state ''
  • React router can't pass params
  • AngularJS UI-Router event when changing route
  • Angular app with ui-router not hitting controller unless its inline function
  • Run javascript function when ui-router state changes?
  • angularJS $stateProvider : How to unit test different views in UI-Router?
  • Meteor Flow router/Iron router with angular ui router
  • React-router force querystring to be an array with a single element
  • Ui-router state resolve array with multiple promises
  • react-router nested routes not render when click Link after refresh page
  • Combination of ui-router with component-router
  • How to split up modules for each react-router path with browserify
  • How to send packets to router of specific mac address and getting ack back using android
  • React router and this.props.children - how to pass state to this.props.children
  • What's the logic behind how React Router processes onEnter?
  • How to test a React component that uses context like in react-router 2.0 with Jest 0.8.x
  • How can I test React Router with Jest?
  • Yii2 - Capture paramether from router in beforeAction
  • Aborting navigation with Meteor iron-router
  • How to create a Single Page Application using react-router
  • Using UI Router to manage PHP register form
  • React router not updating
  • How to make redirect inside component in React router?
  • ReactJS: Accessing Redux Store from routes set up via React Router
  • Angula2 router - can't set default route
  • how to connect to cisco 881-w router and config it?
  • React Router + AWS Backend, how to SEO
router list of languages used
router latest release notes
1.5.0 1.5.0


Bug Fixes

  • navigation-instruction: Wait to swap child routes (1432234)


1.4.0 1.4.0

aurelia-router 1.4.0

Bug Fixes

  • activation: Deactivate child viewModels when replacing a parent (f73b6d5)
  • router: fix NavigationInstructionInit's queryParams (1266b0b)
  • router: getBaseUrl() to return correct URL for encodable chars (0ef12f6)


  • activation: call can/Deactivate with navigationInstructions (3d3c444), closes #493
  • router: enable parent chain unknown route handlers (f692bcb)
  • type declarations: Refine the type (638aef4)
1.3.0 1.3.0

aurelia-router 1.3.0


  • viewport: add viewport name to life cycle arguments (34ef2c4)
Other projects in JavaScript