为什么我需要在default.htm中包含多个.js文件,当在visual studio中使用typescript时



我刚开始用打字稿。我想尝试在Visual Studio中使用这个mankala示例。最终我得到了它的工作,但我不得不包括所有的。js文件,从。ts文件生成在我的默认。htm文件。示例中的.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>

为了创建项目,我创建了一个默认的(不完全空的)typescript项目,从该项目中删除自动创建的app.ts文件,然后添加6个新的.ts文件,它们的名称与示例中的.ts文件相同。然后,我将示例中的.ts文件复制到vs创建的新.ts文件上。我用示例中的play.css文件替换了自动生成的app.css文件,并用示例中的play.htm内容替换了自动生成的default.htm文件的内容。这没有运行,但在我添加了额外的。js文件到default.htm后,它运行了。

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

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

当您构建Mankala示例时,假设您阅读了README,您运行

tsc Driver.ts -out game.js

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

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

相关内容

最新更新