1

I am new to angular2 and I want to know the use of all the objects present inside systemjs.config.js file.

System.config({
    paths: {
        // paths serve as alias
        'npm:': 'node_modules/'
    },
    // map tells the System loader where to look for things
    map: {
        // our app is within the app folder
        app: 'dist',
        main: 'main.js',

        // angular bundles
        '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
        '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
        '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
        '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
        '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
        '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
        '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
        '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',

        // other libraries
        'rxjs': 'npm:rxjs',
        'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
        'primeng':                   'npm:primeng'      
    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
        app: { main: 'main.js', defaultExtension: 'js' },
        api: { defaultExtension: 'js' },
        rxjs: {defaultExtension: 'js'},
        'node_modules/primeng': {
            format: 'cjs',
            defaultExtension: 'js'
          }
         }

});

For example the code pasted above has objects like paths which can be used to specify alias, in the same manner I want to know the use of map and all the inner objects of map, so on.

1 Answer 1

3

Well, first of all you tell where the npm package is located, usually at the root, hence:

paths: {
    // paths serve as alias
    'npm:': 'node_modules/'
}

then you give aliases ( shortcut names ) to the packages that you will be using, in this case angular and some 3rd party libs like rxjs, ...

map: {
        // our app is within the app folder
        app: 'dist',
        main: 'main.js',

        // angular bundles
        '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
        '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
        '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
        '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
        '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
        '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
        '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
        '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',

        // other libraries
        'rxjs': 'npm:rxjs',
        'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
        'primeng':                   'npm:primeng'      
    }

So instead of typing the whole path when you import a library(e.g. 'npm:@angular/core/bundles/core.umd.js'), you will only have to import the alias you gave it ('@angular/core'). When importing the alias, you are sure you're importing the right library.

the 'npm:' in front of the full paths of the libraries, refers to the path 'npm' you initiated above.

Sign up to request clarification or add additional context in comments.

5 Comments

sorry for the late reply, can you also update the details of packages object in the systemjs.config.js .... thank you
Like changing the path ? Yes you can.
what i was trying to ask is, could you explain the packages object and purpose of all the object inside it in detail
@LijinDurairaj here's a detailed explanation: github.com/systemjs/systemjs/blob/master/docs/…
@LijinDurairaj it's a pleasure ! :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.