1

我刚开始使用打字稿。我想尝试在 Visual Studio 中使用这个 mankala 示例。最终我让它工作了,但我必须在我的 default.htm 文件中包含从 .ts 文件生成的所有 .js 文件。示例中的 .htm 文件仅包含一个文件 - 包含入口点的文件。我猜我的配置中有一些错误,我正在通过多个 .js 包含进行补偿。谁能告诉我我做错了什么?

更多详情如下...

这是原始 .htm 文件的样子:

<!DOCTYPE html>
<html>

<head>
  <title>Mankala</title>
  <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  <script type="text/javascript" src="game.js"></script>
  <link rel="stylesheet" type="text/css" href="play.css"/>  
</head>
<body id="bod" onload="Mankala.testBrowser()">
   <div class="hscore">Human: <span id="humscore">0</span></div>
   <div class="cscore">Computer: <span id="compscore">0</span></div>
</body>
</html>

这就是我修改后的 .htm 文件的样子:

<!DOCTYPE html>
<html>

<head>
  <title>Mankala</title>
  <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  <script type="text/javascript" src="base.js"></script>
  <script type="text/javascript" src="Driver.js"></script>
  <script type="text/javascript" src="Features.js"></script>
  <script type="text/javascript" src="Game.js"></script>
  <script type="text/javascript" src="geometry.js"></script>
  <script type="text/javascript" src="Position.js"></script>
  <link rel="stylesheet" type="text/css" href="play.css"/>  
</head>
<body id="bod" onload="Mankala.testBrowser()">
   <div class="hscore">Human: <span id="humscore">0</span></div>
   <div class="cscore">Computer: <span id="compscore">0</span></div>
</body>
</html>

为了创建项目,我创建了一个默认的(不是很空的)打字稿项目,从该项目中删除了自动创建的 app.ts 文件,然后添加了 6 个与示例中的 .ts 文件同名的新 .ts 文件。然后我将示例中的 .ts 文件复制到 VS 创建的新 .ts 文件上。我将自动生成的 app.css 文件替换为示例中的 play.css 文件,并将自动生成的 default.htm 文件的内容替换为示例中的 play.htm 的内容。这没有运行,但是在我将附加的 .js 文件添加到 default.htm 之后它运行了。

我正在使用 Visual Studio 2012 Express for Web 和 typescript 0.8.3.1 VS 扩展。我在 windows7 上使用 Chrome 浏览器。

4

1 回答 1

2

这里的区别在于编译器是如何被调用的。

当您构建 Mankala 示例时,假设您阅读了自述文件,您运行

tsc Driver.ts -out game.js

-out标志告诉编译器将编译连接成一个大的 .js 文件。但是,Visual Studio 项目中的默认行为是并行构建,即base.ts创建base.jsFeatures.ts创建Features.js等。

<TypeScriptOutFile>game.js</TypeScriptOutFile>您可以通过向项目中添加与其他 TypeScript 设置相同的元素来修复项目文件<PropertyGroup>(在默认的新项目中靠近第 57 行)。如果您希望在两个编译设置中具有相同的行为,请务必同时添加DebugRelease PropertyGroup元素,或者创建一个新的非条件PropertyGroup.

于 2013-06-13T18:38:54.027 回答