I use system.js and systemjs builder to create a dist folder with all the javascript packed files of my angular2 application.
It works very well, except that it does not include the following files, which are currently statically included in index.html:
- node_modules / zone.js / dist / zone.js
- node_modules / reflect-metadata / Reflect.js
- node_modules / systemjs / dist / system.src.js
- node_modules / esri-system-js / dist / esriSystem.js
How can I get the systemjs constructor to include these dependencies?
LIBS-bundle.js:
var SystemBuilder = require('systemjs-builder'); var builder = new SystemBuilder(); builder.loadConfig('./systemjs.config.js').then(function() { return builder.bundle('app - [app/**/*]', // build app and remove the app code - this leaves only 3rd party dependencies 'dist/libs-bundle.js'); }).then(function() { console.log('library bundles built successfully!'); });
bundle.js application
var SystemBuilder = require('systemjs-builder'); var builder = new SystemBuilder(); builder.loadConfig('./systemjs.config.js').then(function() { return builder.bundle('app - dist/libs-bundle.js',
systemjs.config.js:
/** * System configuration for Angular 2 samples * Adjust as necessary for your application needs. */ (function(global) { 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', // 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', 'angular2-in-memory-web-api': 'npm:angular2-in-memory-web-api', 'ng2-slim-loading-bar': 'npm:/ng2-slim-loading-bar', 'ng2-toasty': 'npm:/ng2-toasty', 'primeng': 'npm:/primeng', '@angular2-material/core': 'npm:/@angular2-material/core', '@angular2-material/grid-list': 'npm:/@angular2-material/grid-list' }, // packages tells the System loader how to load when no filename and/or no extension packages: { app: { main: './main.js', defaultExtension: 'js' }, rxjs: { defaultExtension: 'js' }, 'esri-mods': { defaultExtension: 'js' }, 'angular2-in-memory-web-api': { main: './index.js', defaultExtension: 'js' }, 'ng2-slim-loading-bar': { main: 'index.js', defaultExtension: 'js' }, 'ng2-toasty': { main: 'index.js', defaultExtension: 'js' }, 'primeng': { defaultExtension: 'js' }, '@angular2-material/core': { main: './core.umd.js', defaultExtension: 'js' }, '@angular2-material/grid-list': { main: './grid-list.umd.js', defaultExtension: 'js' } }, meta: { 'esri/*': { build: false }, 'esri-mods': { build: false }, 'dojo/*': { build: false }, } }); })(this);