Does anyone have a working example where SystemJS (not Webpack) is used with Angular2 (in TypeScript, not Dart) with cesium (npm)?
I know this blog post on cesiumjs: https://cesiumjs.org/2016/01/26/Cesium-and-Webpack/
And I like the way the author says: "You can't just do require('cesium')
." The problem with this article is that it uses the Webpack method, and I don't have one.
In any case, I want to solve this specific error (from the browser): Error: (SystemJS) AMD module http://localhost:3000/node_modules/cesium/Build/CesiumUnminified/Cesium.js did not define
Here is what I have:
In my systemjs.config.js
file:
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 ... }
@Injectable()
Example:
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 }); }
And finally, the client code that tries to use my "CesiumClock", and gives me an error (after translation) in the browser:
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) {} }
UPDATE :
Based on @artem
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 a new Cesium.Viewer(...)
Cesium
object is just an empty slate. The error I see is
Cesium.Viewer is not a constructor