3

我已经安装了最新版本的 TypeScript 以及最新版本的 Web Essentials。我在 VS2012 中创建了一个新的 TypeScript 项目。

如果有utils.ts

moduls utils
{
    export function getNumber() {
        return 4;
    }
}

还有一个app.ts

/// <reference path="utils.ts" />

alert(utils.getNumber().toString());

JavaScript 文件都是单独编译的。但是要app.js正常工作,utils.ts显然必须包含已编译的源代码。

当我tsc app.ts -out app.js在控制台中运行时它确实有效,但我不想每次都手动运行它。

为什么 Web Essentials 不能为我做这些?

4

2 回答 2

3

我安装了 Web Essentials,因为我喜欢并排编辑,但我使用项目文件中的 TypeScript 编译器来编译单个输出。

详细信息在这里: http: //www.stevefenton.co.uk/Content/Blog/Date/201301/Blog/Getting-The-Right-Set-Up-For-TypeScript/

但是您的项目文件的代码块是:

<Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc&quot; --out final.js @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

您可能会发现这在您的项目文件中大部分已经存在,您只需要添加 --out 标志。

于 2013-03-11T19:15:59.880 回答
0

我正在为 Web/TypeScript0.9.0.1 使用 VS2012 express,但上述方法不起作用。万一其他人对该设置有此问题,我确实得到了类似的解决方法

  1. 在 Project Properties -> Build Events -> Pre-build event 命令行中我添加了:"C:\Program Files (x86)\Microsoft SDKs\TypeScript\tsc.exe" --target ES5 $(ProjectDir)app.ts -out $(ProjectDir)Final.js

  2. 修改 default.htm 以加载Final.js而不是app.js

于 2013-07-08T07:45:41.120 回答