铯与网页包和Typescript:ReferenceError:铯未定义
我已使用Official cesium with webpack模板设置了一个项目,可在此处找到: 然后我尝试向该项目添加typescript支持。它编译得很好,但在浏览器中出现以下错误:铯与网页包和Typescript:ReferenceError:铯未定义,typescript,webpack,cesium,Typescript,Webpack,Cesium,我已使用Official cesium with webpack模板设置了一个项目,可在此处找到: 然后我尝试向该项目添加typescript支持。它编译得很好,但在浏览器中出现以下错误: ReferenceError:铯未定义索引。ts:12:4 以下是我的index.ts脚本: /// <reference path="custom_typings/cesium/index.d.ts" /> require('cesium/Widgets/widgets.css'); requi
ReferenceError:铯未定义索引。ts:12:4
以下是我的index.ts脚本:
/// <reference path="custom_typings/cesium/index.d.ts" />
require('cesium/Widgets/widgets.css');
require('./css/main.css');
require('cesium/Cesium');
// Example app
let viewerOptions : Cesium.ViewerOptions = {
scene3DOnly: true,
selectionIndicator: false,
baseLayerPicker: false
}
let viewer = new Cesium.Viewer('cesiumContainer', viewerOptions);
Cesium和typescript都作为节点模块安装。我通过以下方式将Cesium作为全局变量来解决问题:
const cs = require("cesium/Cesium");
(<any>window).Cesium = cs
const cs=require(“铯/铯”);
(窗口)。铯=铯
您的铯基URL必须是应用程序的基URL
new DefinePlugin({
// whatever the base is www.example.com, http://localhost or whatever
CESIUM_BASE_URL: JSON.stringify('http://localhost/'),
}),
我不是一个喜欢使用网页包的人,但是,试着将第三个require替换为:
const-Cesium=require('Cesium/Cesium')
不起作用,因为类型定义已经导出了一个名为Cesium的命名空间<代码>声明模块铯{如果没有编译器所说的类型定义:无法重新声明块作用域变量“铯”。
new DefinePlugin({
// whatever the base is www.example.com, http://localhost or whatever
CESIUM_BASE_URL: JSON.stringify('http://localhost/'),
}),