Có ai đó có một ví dụ làm việc trong đó SystemJS (không phải Webpack) đang được sử dụng với một Angular2 (trong TypeScript, không phải Dart) với Cesium (npm) không?Nhận Cesium, SystemJS và Angular2 để hoạt động?
tôi biết bài viết trên blog này trên trang web cesiumjs': https://cesiumjs.org/2016/01/26/Cesium-and-Webpack/
Và tôi thích cách tác giả nói, 'Bạn có thể không chỉ đơn giản là làm một require('cesium')
.' Vấn đề với bài viết là nó sử dụng cách Webpack, và tôi không có sẵn.
Dù bằng cách nào, tôi đang tìm cách để giải quyết lỗi này cụ thể (từ trình duyệt): Error: (SystemJS) AMD module http://localhost:3000/node_modules/cesium/Build/CesiumUnminified/Cesium.js did not define
Dưới đây là những gì tôi có:
Trong systemjs.config.js
tập tin của tôi:
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()
Ví dụ :
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
});
}
.210
Và cuối cùng, mã khách hàng mà cố gắng để sử dụng 'CesiumClock' của tôi, và mang lại cho tôi những lỗi (sau khi transpiling) trong trình duyệt:
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) {}
}
CẬP NHẬT:
Dựa trên @artem
's câu trả lời, tôi đã có thể loại bỏ cụ thể 'Lỗi: (SystemJS) AMD' từ trình duyệt. Nhưng bây giờ, nếu tôi muốn nói đến bất cứ điều gì Cesium, chẳng hạn new Cesium.Viewer(...)
đối tượng Cesium
chỉ là một phương tiện trống. Lỗi tôi thấy là
Cesium.Viewer is not a constructor
Không làm việc cho tôi được nêu ra: -/Tôi làm được những lỗi ' Ngoại lệ: Uncaught (trong lời hứa): Lỗi: Lỗi trong: 0: 0 gây ra bởi: Không thể xử lý ràng buộc "click: function() {return function() {cameraClicked.raiseEvent (this);}}" Tin nhắn: n (...). bind không phải là hàm TypeError: Không thể xử lý ràng buộc "click: function() {return function() {cameraClicked.raiseEvent (this);}}" Thông báo: n (...). Bind không phải là một hàm' bất kỳ ý tưởng nào? – mfreiholz
@mfreiholz - Tôi nghĩ bạn có thể có một câu hỏi riêng. Tôi sẽ đăng một câu hỏi, và nếu bạn nghĩ rằng nó sẽ giúp đỡ, liên kết này liên quan đến thiết lập của bạn? Nếu câu hỏi của chúng tôi là trùng lặp, ai đó chắc chắn sẽ lưu ý nó. – westandy