Czy ktoś ma działający przykład, w którym SystemJS (nie Webpack) jest używany z Angular2 (w TypeScript, nie Dart) z cezem (npm)?Czy Ciumium, SystemJS i Angular2 działają?
Zdaję sobie sprawę z tego blogu na miejscu cesiumjs': https://cesiumjs.org/2016/01/26/Cesium-and-Webpack/
I lubię jak autor mówi: «Nie można po prostu zrobić require('cesium')
». Problem z tym artykułem polega na tym, że używa on sposobu Webpacka, a ja go nie mam.
Tak czy inaczej, szukam rozwiązania tego konkretnego błędu (od przeglądarki): Error: (SystemJS) AMD module http://localhost:3000/node_modules/cesium/Build/CesiumUnminified/Cesium.js did not define
Oto co mam:
W moim systemjs.config.js
pliku:
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()
przykładu :
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
});
}
I wreszcie, kod klienta, który stara się wykorzystać moje 'CesiumClock' i daje mi błąd (po transpiling) w przeglądarce:
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:
podstawie @artem
„s Odpowiedź, udało mi się usunąć specyficzny "Błąd: (SystemJS) AMD" z przeglądarki. Ale teraz, jeśli chcę odwoływać się do czegokolwiek cezu, to taki obiekt new Cesium.Viewer(...)
jest obiektem pustym. Błąd widzę jest
Cesium.Viewer is not a constructor
nie działa dla mnie jeszcze: -/I zrobić pojawia się błąd ' WYJĄTEK: Uncaught (in promise): Błąd: Błąd w: 0: 0 spowodowany przez: Nie można przetworzyć wiązania "click: function() {return function() {cameraClicked.raiseEvent (this);}}" Wiadomość: n (...). bind nie jest funkcją TypeError: Nie można przetworzyć wiązania "click: function() {funkcja return() {cameraClicked.raiseEvent (this);}}" Wiadomość: n (...). Bind nie jest funkcją? Jakiś pomysł? – mfreiholz
@mfreiholz - Myślę, że możesz mieć osobne pytanie. Chciałbym opublikować pytanie, a jeśli uważasz, że to pomogłoby, połączyć to w odniesieniu do konfiguracji? Jeśli nasze pytania są duplikatami, ktoś na pewno to zauważy. – westandy