title: Get Cesium, SystemJS, and Angular2 to work?
body: <p>Does somebody have a working example where SystemJS (not Webpack) is being used with an Angular2 (in TypeScript, not Dart) with Cesium (npm)?  </p>
  
  <p>I am aware of this blog post on cesiumjs' site:
  <a href="https://cesiumjs.org/2016/01/26/Cesium-and-Webpack/" rel="nofollow noreferrer">https://cesiumjs.org/2016/01/26/Cesium-and-Webpack/</a></p>
  
  <p>And I like how the author says, "You can't simply do a <code>require('cesium')</code>."  The problem with the article is that it uses the Webpack way, and I do not have that available.  </p>
  
  <p>Either way, I am looking to solve this particular error (from the Browser):
  <code>Error: (SystemJS) AMD module http://localhost:3000/node_modules/cesium/Build/CesiumUnminified/Cesium.js did not define</code></p>
  
  <p>Here's what I have:</p>
  
  <p>In my <code>systemjs.config.js</code> file:</p>
  
  <pre><code>paths: {'npm:' :  'node_modules/'},
  map: {
      // our app is within the dist folder
      app: 'dist',
  
      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      ...
  
      'require': 'npm:requirejs/require.js',
      'cesium': 'npm:cesium/Build/CesiumUnminified/Cesium.js',
  
      // Other packages
      ...
  }
  </code></pre>
  
  <p><code>@Injectable()</code> Example:</p>
  
  <pre><code>let Cesium = require('cesium');
  import { Injectable } from '@angular/core';
  
  @Injectable()
  
  export class CesiumClock {
      private _start:any = Cesium.JulianDate.now();
      private _stop:any = Cesium.JulianDate.addHours(this._start,12,new Cesium.JulianDate());
      private _clock:any = new Cesium.Clock({
          startTime: this._start,
          stopTime: this._stop,
          currentTime: this._start,
          clockRange: Cesium.ClockRange.LOOP_STOP,
          mutliplier: 1,
          shouldAnimate: true
      });
  }
  </code></pre>
  
  <p>And finally, the client code that tries to use my 'CesiumClock', and gives me the error (after transpiling) in the browser:</p>
  
  <pre><code>import { Component } from '@angular/core';
  import { CesiumClock } from '../services/index';
  
  @Component({
      moduleId: module.id.replace("/dist", "/app"),
      templateUrl: 'stuff.component.html',
      styleUrls: [
          'stuff.css',
          'node_modules/cesium/Build/Cesium/Widgets/widgets.css'
      ]
   })
  
  export class StuffComponent {
      constructor(private _cesiumClock:CesiumClock) {}
  }
  </code></pre>
  
  <p><strong>UPDATE</strong>: </p>
  
  <p>Based on <code>@artem</code>'s answer, I was able to remove the specific 'Error: (SystemJS) AMD' from the browser.  But now, if I want to refer to anything Cesium, such <code>new Cesium.Viewer(...)</code> the <code>Cesium</code> object is just a blank slate.  The error I see is </p>
  
  <p><code>Cesium.Viewer is not a constructor</code></p>