Search code examples
angularnpmsystemjs

systemjs is unable to link and down load my new module


I have created a angular module which is getting downloaded using npm as its private node module in my company registry

My systemjs always search it in my current directory with any extension even I set default extension as js


Solution

  • Make sure your systemjs configuration holds all you mapping properly

    Below is a systemjs confi which holds different angular2 modules as individual

    modules and loads from different folders
    (function (global) {
      System.config({
        defaultExtension: 'js',
        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: 'src',
          // 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',
          'ng2-pagination': 'npm:ng2-pagination/dist/ng2-pagination-bundle.js',
    
          //private modules
          'local': 'local/',
          'candi-services': 'npm:candi-services',
          'candi-loader': 'npm:candi-loader',
          'candi-global-search': 'npm:candi-global-search'
    
        },
        // packages tells the System loader how to load when no filename and/or no extension
        packages: {
          defaultExtension: 'js',
          app: {
            main: 'app/main.js',
            defaultExtension: 'js'
          },
          local: {
            main: 'main.js',
            defaultExtension: 'js'
          },
          'candi-loader' : {
            main: './index.js',
            defaultExtension: 'js'
          },
          'candi-services' : {
            main: './index.js',
            defaultExtension: 'js'
          },
           'candi-global-search' : {
            main: './index.js',
            defaultExtension: 'js'
          },
          rxjs: {
            defaultExtension: 'js'
          },
          'angular-in-memory-web-api': {
            main: './index.js',
            defaultExtension: 'js'
          }
        }
      });
    })(this);