TypeScript 创建Windows应用商店程序

TypeScript是微软最新推出的类型化的开源的JavaScript超级包,它提供了模块,类,接口等特性,本质上是向Javascript添加了基于类型和基于类的面向对象编程,使Javascript可以更好的用于大型应用的开发,最终编译生成Javascript代码。话不多说,大家如果想了解更多信息可以点这个链接TypeScript,这次我们要尝试用TypeScript来创建应用商店程序。

在此之前我假定小伙伴们已经装好了TypeScript工具了,没装的可以点这个链接TypeScript 1.0 Tools(官方的),好了,开始吧。

打开Visual Studio,打开添加项目对话框


为什么TypeScript选项没有创建应用商店程序选项,这下坑了,难道说要创建应用商店程序的梦想要泡汤了?别担心,总有办法的,要是直接有这个选项的话,那我再写这篇文章岂不是很蛋疼。好吧,既然TypeScript的根是Javascript,那我们用Javascript创建一个应用商店程序。

OK,创建完成了,如果你现在添加一个TypeScript文件的话是不会起作用的,因为项目还没有配置编译TypeScript,我们要对这个项目进行改造。首先卸载你当前的项目(Unload Project),


然后再编辑当前项目的项目文件。


现在我们要加点东西让MSBuild知道当它遇到Typescript文件的时候该怎么做(当然你的MSBuild文件夹里得有TypeScript相关组件啊,一般是放在C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript)。我们先找到一个PropertyGroup节点,一般在37行,它有一个属性Label="Globals",这个时候它有一个子节点是ProjectGuid,我们再给它添加一个子节点吧<TypeScriptPath>。(ProjectGuid 不要改)

  <PropertyGroup Label="Globals">
    <ProjectGuid>73e279d1-204c-41f7-8ba0-e84c8708fbb5</ProjectGuid>
    <TypeScriptPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(MSBuildToolsVersion)\TypeScript</TypeScriptPath>
  </PropertyGroup>
其实这个<TypeScriptPath>对应的就是TypeScript组件的位置(我这里对应C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript),下面我们为Typescript编译器添加默认属性,可以看到上面那个节点下面有几个<import>的节点,我们就把我们要添加的放在这些节点下面。

<Import Project="$(TypeScriptPath)\Microsoft.TypeScript.Default.props" />

最后我们要添加的是Typescript Debug和Release的配置,这些配置包括了许多编译Typescript时需要执行的Tasks,将以下代码添加至末尾。

<pre name="code" class="html">  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptRemoveComments>false</TypeScriptRemoveComments>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptRemoveComments>true</TypeScriptRemoveComments>
    <TypeScriptSourceMap>false</TypeScriptSourceMap>
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind>
  </PropertyGroup>
  <Import Project="$(TypeScriptPath)\Microsoft.TypeScript.targets" />
  <Import Project="$(TypeScriptPath)\Microsoft.TypeScript.jsproj.targets" />

 TypeScriptTarget是告诉编译器把TypeScript文件编译成EcmeScript 5,TypeScriptRemoveComments设置是否去除注释, TypeScriptSourceMap设置调试并可打断点。TypeScriptModuleKind是告诉Typescript编译器应该使用AMD 组件,当然我们也可以把它设置成CommonJS。 

好了,项目文件的改造完成了,保存项目文件并重新加载项目。下面我们添加一个TypeScript文件,由于添加新项对话框里没有TypeScript选项,我们只能随便选一个代码文件把后缀名改为.ts了,这里我在js文件夹下添加了一个default.ts,查看这个ts文件的属性,当你看到属性里的Package Action是TypeScriptCompile,那就代表我们改造成功了。 

大家有没有注意到我的js文件夹里有两格名为default的文件,只是格式不同,一个为ts一个为js,但它们现在是关联起来的(当我们改造完项目文件,添加一个同名的ts文件就自动关联了),编译器编译default.ts文件生成的JavaScript代码会放在default.js中。现在default.js就相当于default.ts的javascript解释。也许两个文件并存看起来会有点累赘,我们可以在修改项目文件,让他们合并在一起。在项目文件里找到include该文件的地方,并把它替换成如下代码。

    <Content Include="js\default.js">
      <DependentUpon>default.ts</DependentUpon>
    </Content>

看现在是不是好多了呢


下面我们再在js文件下添加一个home.ts文件,然后编译以下项目,编译后生成了home.ts和home.js.map文件


又一次证明了我们改造项目成功,home.js.map是home.js和home.ts关联的关键,每一个ts文件最终都会生成同名的js文件,我们修改ts文件后相应的js文件最终也会被更新,这关键之处就在于这个.map文件了。有效文件还是home.js你可以把它包含在项目当初,可以把它们像default.ts和default.js那样整合起来。


References: http://www.typescriptlang.org/

                       http://www.timmykokke.com/2014/04/enabling-typescript-compilation-in-windows-store-apps/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值