Search code examples
systemjs

SystemJS depdencies not loading


I can't understand why dependencies aren't being loaded. My understanding is that this is a core feature of SystemJS. I've included my systemjs.config.json file below.

systemjs.config.js?v=636221065494454018:162{  
   "warnings":true,
   "paths":{  
      "lib:":"lib/"
   },
   "meta":{  
      "@ngrx/core":{  
         "exports":"@ngrx/core"
      },
      "@ngrx/store":{  
         "exports":"@ngrx/store"
      },
      "localforage":{  
         "exports":"localforage"
      },
      "moment":{  
         "exports":"moment"
      },
      "underscore":{  
         "exports":"underscore"
      },
      "sortablejs":{  
         "exports":"sortablejs"
      },
      "clndr":{  
         "exports":"clndr",
         "format":"global",
         "deps":[  
            "jquery",
            "moment"
         ]
      },
      "swiper":{  
         "exports":"swiper",
         "format":"global",
         "deps":[  
            "jquery"
         ]
      },
      "select2":{  
         "exports":"select2",
         "format":"global",
         "deps":[  
            "jquery"
         ]
      },
      "autosize":{  
         "exports":"autosize",
         "format":"global",
         "deps":[  
            "jquery"
         ]
      },
      "jquery":{  
         "exports":"jquery"
      },
      "jquery.mousewheel":{  
         "exports":"jquery.mousewheel",
         "format":"global",
         "deps":[  
            "jquery"
         ]
      },
      "jquery.mCustomScrollbar":{  
         "exports":"jquery.mCustomScrollbar",
         "format":"global",
         "deps":[  
            "jquery"
         ]
      },
      "hammerjs":{  
         "exports":"hammerjs"
      },
      "wnumb":{  
         "exports":"wnumb"
      },
      "clipboard":{  
         "exports":"clipboard"
      },
      "materialize-css":{  
         "exports":"materialize-css",
         "format":"global",
         "deps":[  
            "jquery"
         ]
      },
      "noUiSlider":{  
         "exports":"noUiSlider",
         "format":"global",
         "deps":[  
            "materialize-css"
         ]
      }
   },
   "map":{  
      "@angular":"lib:@angular",
      "aot":"aot",
      "app":"app",
      "rxjs":"lib:rxjs/",
      "@ngrx/core":"lib:@ngrx/core/",
      "@ngrx/store":"lib:@ngrx/store/",
      "localforage":"lib:localforage/",
      "moment":"lib:moment/",
      "underscore":"lib:underscore/",
      "sortablejs":"lib:sortablejs/",
      "clndr":"lib:clndr/",
      "swiper":"lib:swiper/",
      "select2":"lib:select2/",
      "autosize":"lib:autosize/",
      "jquery":"lib:jquery/",
      "jquery.mousewheel":"lib:jquery.mousewheel/",
      "jquery.mCustomScrollbar":"lib:jquery.mCustomScrollbar/",
      "hammerjs":"lib:hammerjs/",
      "wnumb":"lib:wnumb/",
      "clipboard":"lib:clipboard/",
      "materialize-css":"lib:materialize-css/dist/js",
      "noUiSlider":"lib:materialize-css",
      "plugin-babel":"lib:babel/plugin-babel.js",
      "systemjs-babel-build":"lib:babel/systemjs-babel-browser.js",
      "plugin-typescript":"lib:typescript",
      "typescript":"lib:typescript"
   },
   "packages":{  
      "@angular/http":{  
         "main":"/bundles/http.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/core":{  
         "main":"/bundles/core.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/router":{  
         "main":"/bundles/router.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/common":{  
         "main":"/bundles/common.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/compiler":{  
         "main":"/bundles/compiler.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/forms":{  
         "main":"/bundles/forms.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/platform-browser":{  
         "main":"/bundles/platform-browser.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/platform-webworker":{  
         "main":"/bundles/platform-webworker.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/platform-browser-dynamic":{  
         "main":"/bundles/platform-browser-dynamic.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "@angular/platform-webworker-dynamic":{  
         "main":"/bundles/platform-webworker-dynamic.umd.js",
         "defaultExtension":"js",
         "format":"cjs"
      },
      "aot":{  
         "defaultExtension":"ts",
         "format":"esm",
         "meta":{  
            "*.ts":{  
               "loader":"plugin-typescript"
            }
         }
      },
      "app":{  
         "defaultExtension":"ts",
         "format":"esm",
         "meta":{  
            "*.ts":{  
               "loader":"plugin-typescript"
            }
         }
      },
      "rxjs":{  
         "defaultExtension":"js",
         "format":"esm",
         "meta":{  
            "*.js":{  
               "loader":"plugin-babel"
            }
         }
      },
      "@ngrx/core":{  
         "defaultExtension":"js",
         "main":"index",
         "format":"esm",
         "meta":{  
            "*.js":{  
               "loader":"plugin-babel"
            }
         }
      },
      "@ngrx/store":{  
         "defaultExtension":"js",
         "main":"index",
         "format":"esm",
         "meta":{  
            "*.js":{  
               "loader":"plugin-babel"
            }
         }
      },
      "localforage":{  
         "defaultExtension":"js",
         "main":"localforage",
         "format":"esm",
         "meta":{  
            "*.js":{  
               "loader":"plugin-babel"
            }
         }
      },
      "moment":{  
         "defaultExtension":"js",
         "main":"moment",
         "format":"global"
      },
      "underscore":{  
         "defaultExtension":"js",
         "main":"underscore",
         "format":"global"
      },
      "sortablejs":{  
         "defaultExtension":"js",
         "main":"sortable",
         "format":"global"
      },
      "clndr":{  
         "defaultExtension":"js",
         "main":"clndr",
         "format":"global"
      },
      "swiper":{  
         "defaultExtension":"js",
         "main":"swiper",
         "format":"global"
      },
      "select2":{  
         "defaultExtension":"js",
         "main":"select2.full",
         "format":"global"
      },
      "autosize":{  
         "defaultExtension":"js",
         "main":"autosize",
         "format":"global"
      },
      "jquery":{  
         "defaultExtension":"js",
         "main":"jquery",
         "format":"global"
      },
      "jquery.mousewheel":{  
         "defaultExtension":"js",
         "main":"jquery.mousewheel",
         "format":"global"
      },
      "jquery.mCustomScrollbar":{  
         "defaultExtension":"js",
         "main":"jquery.mCustomScrollbar",
         "format":"global"
      },
      "hammerjs":{  
         "defaultExtension":"js",
         "main":"hammer",
         "format":"global"
      },
      "wnumb":{  
         "defaultExtension":"js",
         "main":"wnumb",
         "format":"global"
      },
      "clipboard":{  
         "defaultExtension":"js",
         "main":"clipboard",
         "format":"global"
      },
      "materialize-css":{  
         "defaultExtension":"js",
         "main":"materialize",
         "format":"global"
      },
      "noUiSlider":{  
         "defaultExtension":"js",
         "main":"noUiSlider",
         "format":"global"
      },
      "plugin-typescript":{  
         "main":"plugin.js"
      },
      "typescript":{  
         "main":"typescript.js",
         "meta":{  
            "typescript.js":{  
               "exports":"ts"
            }
         }
      }
   },
   "typescriptOptions":{  
      "target":"es5",
      "module":"es6",
      "emitDecoratorMetadata":true,
      "experimentalDecorators":true
   },
   "transpiler":"plugin-typescript"
}

For example, the clndr package isn't loading the moment.js library. It seems like the syntax for declaring dependencies has changed quite a bit over the past year or so... I'm trying to understand what is the proper way to list package dependencies as of systemjs 0.20.5 (released about a week ago).

Any help is appreciated - thanks.


Solution

  • Looks like SystemJS needs the full path in the meta definition. This config is working...

    {
       "warnings":true,
       "map":{
          "@angular":"lib:@angular",
          "aot":"aot/",
          "app":"app/",
          "rxjs":"lib:rxjs/",
          "@ngrx/core":"lib:@ngrx/core/",
          "@ngrx/store":"lib:@ngrx/store/",
          "localforage":"lib:localforage/",
          "moment":"lib:moment/",
          "underscore":"lib:underscore/",
          "sortablejs":"lib:sortablejs/",
          "clndr":"lib:clndr/",
          "swiper":"lib:swiper/",
          "select2":"lib:select2/",
          "autosize":"lib:autosize/",
          "jquery":"lib:jquery/",
          "jquery.mousewheel":"lib:jquery.mousewheel/",
          "jquery.mCustomScrollbar":"lib:jquery.mCustomScrollbar/",
          "hammerjs":"lib:hammerjs/",
          "wnumb":"lib:wnumb/",
          "clipboard":"lib:clipboard/",
          "materialize-css":"lib:materialize-css/dist/js/",
          "noUiSlider":"lib:materialize-css/",
          "plugin-babel":"lib:babel/plugin-babel.js",
          "systemjs-babel-build":"lib:babel/systemjs-babel-browser.js",
          "plugin-typescript":"lib:typescript",
          "typescript":"lib:typescript"
       },
       "meta":{
          "lib:clndr/clndr.js":{
             "deps":[
                "moment",
                "jquery"
             ]
          },
          "lib:swiper/swiper.js":{
             "deps":[
                "jquery"
             ]
          },
          "lib:select2/select2.full.js":{
             "deps":[
                "jquery"
             ]
          },
          "lib:autosize/autosize.js":{
             "deps":[
                "jquery"
             ]
          },
          "lib:jquery.mousewheel/jquery.mousewheel.js":{
             "deps":[
                "jquery"
             ]
          },
          "lib:jquery.mCustomScrollbar/jquery.mCustomScrollbar.js":{
             "deps":[
                "jquery"
             ]
          },
          "lib:materialize-css/dist/js/materialize.js":{
             "deps":[
                "jquery"
             ]
          },
          "lib:materialize-css/noUiSlider.js":{
             "deps":[
                "materialize-css"
             ]
          }
       },
       "paths":{
          "lib:":"lib/"
       },
       "depCache":{
          "clndr":[
             "moment",
             "jquery"
          ],
          "swiper":[
             "jquery"
          ],
          "select2":[
             "jquery"
          ],
          "autosize":[
             "jquery"
          ],
          "jquery.mousewheel":[
             "jquery"
          ],
          "jquery.mCustomScrollbar":[
             "jquery"
          ],
          "materialize-css":[
             "jquery"
          ],
          "noUiSlider":[
             "materialize-css"
          ]
       },
       "packages":{
          "@angular/http":{
             "main":"/bundles/http.umd.js",
             "defaultExtension":"js"
          },
          "@angular/core":{
             "main":"/bundles/core.umd.js",
             "defaultExtension":"js"
          },
          "@angular/router":{
             "main":"/bundles/router.umd.js",
             "defaultExtension":"js"
          },
          "@angular/common":{
             "main":"/bundles/common.umd.js",
             "defaultExtension":"js"
          },
          "@angular/compiler":{
             "main":"/bundles/compiler.umd.js",
             "defaultExtension":"js"
          },
          "@angular/forms":{
             "main":"/bundles/forms.umd.js",
             "defaultExtension":"js"
          },
          "@angular/platform-browser":{
             "main":"/bundles/platform-browser.umd.js",
             "defaultExtension":"js"
          },
          "@angular/platform-webworker":{
             "main":"/bundles/platform-webworker.umd.js",
             "defaultExtension":"js"
          },
          "@angular/platform-browser-dynamic":{
             "main":"/bundles/platform-browser-dynamic.umd.js",
             "defaultExtension":"js"
          },
          "@angular/platform-webworker-dynamic":{
             "main":"/bundles/platform-webworker-dynamic.umd.js",
             "defaultExtension":"js"
          },
          "aot":{
             "defaultExtension":"ts",
             "meta":{
    
             }
          },
          "app":{
             "defaultExtension":"ts",
             "meta":{
    
             }
          },
          "rxjs":{
             "defaultExtension":"ts",
             "meta":{
    
             }
          },
          "@ngrx/core":{
             "defaultExtension":"js",
             "meta":{
                "*.js":{
                   "loader":"plugin-babel"
                }
             },
             "main":"index",
             "format":"esm"
          },
          "@ngrx/store":{
             "defaultExtension":"js",
             "meta":{
                "*.js":{
                   "loader":"plugin-babel"
                }
             },
             "main":"index",
             "format":"esm"
          },
          "localforage":{
             "defaultExtension":"js",
             "meta":{
                "*.js":{
                   "loader":"plugin-babel"
                }
             },
             "main":"localforage",
             "format":"esm"
          },
          "moment":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"moment",
             "format":"global"
          },
          "underscore":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"underscore",
             "format":"global"
          },
          "sortablejs":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"sortable",
             "format":"global"
          },
          "clndr":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"clndr",
             "format":"global"
          },
          "swiper":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"swiper",
             "format":"global"
          },
          "select2":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"select2.full",
             "format":"global"
          },
          "autosize":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"autosize",
             "format":"global"
          },
          "jquery":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"jquery",
             "format":"global"
          },
          "jquery.mousewheel":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"jquery.mousewheel",
             "format":"global"
          },
          "jquery.mCustomScrollbar":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"jquery.mCustomScrollbar",
             "format":"global"
          },
          "hammerjs":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"hammer",
             "format":"global"
          },
          "wnumb":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"wnumb",
             "format":"global"
          },
          "clipboard":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"clipboard",
             "format":"global"
          },
          "materialize-css":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"materialize",
             "format":"global"
          },
          "noUiSlider":{
             "defaultExtension":"js",
             "meta":{
    
             },
             "main":"noUiSlider",
             "format":"global"
          },
          "plugin-typescript":{
             "main":"plugin.js"
          },
          "typescript":{
             "main":"typescript.js",
             "meta":{
                "typescript.js":{
                   "exports":"ts"
                }
             }
          }
       },
       "typescriptOptions":{
          "target":"es5",
          "module":"es6",
          "emitDecoratorMetadata":true,
          "experimentalDecorators":true
       },
       "transpiler":"plugin-typescript"
    }
    

    Notice this meta stanza before and after... I do not think the exports and format statements matter here. lib: is defined as paths { 'lib:': 'lib/'}

    BEFORE

    "clndr":{  
             "exports":"clndr",
             "format":"global",
             "deps":[  
                "jquery",
                "moment"
             ]
          },
    

    AFTER

     "lib:clndr/clndr.js":{
             "deps":[
                "moment",
                "jquery"
             ]
          },