我最近开始研究 TypeScript。我正在使用 require.js 来加载模块。目前我只加载jquery,但这显然会被扩展。
我的项目设置如下:
app
> classes
> Greeter.ts
> AppConfig.ts
> AppMain.ts
lib
> jquery-1.7.2.js
> require.js
modules
> jquery.d.ts
> require.d.ts
app.ts
default.htm
应用配置文件
/// <reference path="../modules/require.d.ts" />
/// <reference path="AppMain.ts" />
require.config({
baseUrl: '../',
paths: {
'jquery': 'lib/jquery-1.7.2'
},
shim: {
jquery: {
exports: '$'
}
}
});
require(['jquery','app/AppMain'],
($, main) => {
// code from window.onload
var appMain = new main.AppMain();
appMain.run();
});
AppMain.ts
import gt = module("app/classes/Greeter");
export class AppMain {
public run() {
var el = document.getElementById('CONTENT_PH');
var greeter = new gt.Greeter(el);
greeter.start();
}
}
问候语.ts
export class Greeter {
element: HTMLElement;
span: HTMLElement;
timerToken: number;
constructor (element: HTMLElement) {
this.element = element;
this.element.innerText += "The time is: ";
this.span = document.createElement('span');
this.element.appendChild(this.span);
this.span.innerText = new Date().toUTCString();
}
start() {
this.timerToken = setInterval(() => this.span.innerText = new Date().toUTCString(), 500);
}
stop() {
clearTimeout(this.timerToken);
}
}
.csproj
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptSourceMap> --module AMD</TypeScriptSourceMap>
</PropertyGroup>
<Target Name="BeforeBuild">
<Message Text="Compiling TypeScript files" />
<Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
<Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
我在本地机器上运行了一些示例,但是当我尝试在实时服务器上运行它时,它会从 require.js 中给出以下脚本错误。
错误:脚本错误http://requirejs.org/docs/errors.html#scripterror [打破此错误]
var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + 身份证);需要.js(第 194 行)
我不知道为什么这适用于我的开发机器,但不适用于实时服务器。
在本地运行此示例适用于 chrome 和 Internet Explorer,但不适用于 Firefox。但这可能是另一个问题。
如果您需要更多详细信息,请告诉我。