What is ember-resolver?
The ember-resolver package is a key component in Ember.js applications, responsible for resolving dependencies such as components, routes, and services. It helps in locating and instantiating the correct modules based on the application's naming conventions and file structure.
What are ember-resolver's main functionalities?
Component Resolution
This feature allows you to resolve a component by its name. The resolver will look up the component in the application's file structure and return the appropriate module.
import Resolver from 'ember-resolver';
const resolver = Resolver.create();
const component = resolver.resolve('component:my-component');
Service Resolution
This feature allows you to resolve a service by its name. The resolver will locate the service module and return it for use in the application.
import Resolver from 'ember-resolver';
const resolver = Resolver.create();
const service = resolver.resolve('service:my-service');
Route Resolution
This feature allows you to resolve a route by its name. The resolver will find the route module and return it, enabling navigation and routing within the application.
import Resolver from 'ember-resolver';
const resolver = Resolver.create();
const route = resolver.resolve('route:my-route');
Other packages similar to ember-resolver
ember-cli
ember-cli is a command line utility for creating, building, serving, and testing Ember.js applications. While it provides a broader set of functionalities compared to ember-resolver, it includes a resolver as part of its build process to manage dependencies and module resolution.
ember-auto-import
ember-auto-import is an Ember addon that allows you to import npm packages into your Ember application without needing to manually configure the resolver. It simplifies the process of using external libraries but does not replace the core functionality of ember-resolver.
ember-load-initializers
ember-load-initializers is a package that helps in loading initializers and instance initializers in an Ember application. While it focuses on the initialization process, it complements ember-resolver by ensuring that all necessary initializers are properly loaded and available.
Ember Resolver 
The Ember Resolver is the mechanism responsible for looking up code in your application and converting its naming conventions into the actual classes, functions, and templates that Ember needs to resolve its dependencies, for example, what template to render for a given route. It is a system that helps the app resolve the lookup of JavaScript modules agnostic of what kind of module system is used, which can be AMD, CommonJS or just plain globals. It is used to lookup routes, models, components, templates, or anything that is used in your Ember app.
This project provides the Ember resolver used by the following projects:
Installation
ember-resolver
is an ember-cli addon, and should be installed with ember install
:
ember install ember-resolver
Configuration
To customize pluralization provide a pluralizedTypes
object to your extended version of the Resolver in consuming app:
# app/resolver.js
import Resolver from 'ember-resolver';
export default Resolver.extend({
pluralizedTypes: {
'sheep': 'sheep',
'strategy': 'strategies'
}
})
Upgrading
ember-resolver
is normally bumped with ember-cli releases. To install a newer
version use yarn
or npm
. For example:
yarn upgrade ember-resolver
Migrating from bower
Before v1.0.1 ember-resolver
was primarially consumed via bower. To migrate
install the addon version via yarn
or npm
. If you're currently using
ember-resolver
v0.1.x in your project, you should uninstall it:
bower uninstall ember-resolver --save
You can continue to use ember-resolver v0.1.x as a bower package, but be
careful not to update it to versions greater than v1.0.
Addon Development
Installation
git clone
this repository
npm install
bower install
Running
Running Tests
ember test
ember test --server
Building
For more information on using ember-cli, visit http://www.ember-cli.com/.
Troubleshooting
As mentioned above, ember-resolver
is no longer a bower package. If you're seeing a message like this:
Unable to find a suitable version for ember-resolver, please choose one:
1) ember-resolver#~0.1.20 which resolved to 0.1.21 and is required by ember-resolver#2.0.3
2) ember-resolver#~2.0.3 which resolved to 2.0.3 and is required by [APP_NAME]
... you probably need to update your application accordingly. See aptible/dashboard.aptible.com#423 as an example of how to update.