Configuration options
IMA.js offers many ways to configure and customize your application to your needs. Here's a list describing all possible configuration files and what they do.
Build and environment configuration
Environment configuration is resolved on server and passed to the client settings under config
param.
-
gulpConfig.js
contains configuration for the gulp tasks we use to build and run your application. -
app/main.js
is the bootstrap of your application. You don't need to concern yourself with this file usually. -
app/build.js
specifies which JavaScript, JSX, Less CSS and language files your application consists of and should be included in your built application.let js = ['./app/!(assets|gulp)/**/!(*Spec).{js,jsx}'];
let less = [
'./app/assets/less/**/*.less',
'./app/component/**/*.less',
'./app/page/**/*.less'
];
let languages = {
en: ['./app/**/*EN.json']
};Note: Files can be specified by a filename expansion as you can see above.
The file also specifies the 3rd party vendor libraries to link as ES2015 modules in your application, separated into three groups: common (shared), server-side and client-side.
let vendors = {
common: ['ima'],
server: [],
client: []
};Last thing configured in the
app/build.js
file is a list of compiled JavaScript and CSS files that should be specified in the main html markup.let bundle = {
js: ['...'],
es: ['...'],
css: ['...']
}; -
app/environment.js
configures the server-side environment. Note that thedev
andtest
environment configuration automatically inherits values from theprod
environment (except for the$Language
which has to be configured individually). This configuration is well described in the comments so see the file for full reference.
Application configuration
-
app/config/services.js
by default this file specifies how the fatal application errors should be handled at the client side. Also provides a way to configure other application-wide settings or 3rd party libraries (analytics, etc.). -
app/config/routes.js
configures your router, mapping routes to the controllers and views in your application. For more information see the Routing page. -
app/config/settings.js
configures your application and IMA.js services. You can freely extend the configuration as you like except for the properties prefixed by dollar sign$
. Note that, again, thedev
andtest
environment configuration automatically inherits values from theprod
environment. -
and finally, the
app/config/bind.js
configures the Object container.
All of these files are necessary and must remain in their locations.