2013-01-18 80 views
1

有没有办法设置一个“BeforeBuild”步骤,将每个TypeScript文件编译到它自己的Javascript文件中的特定目录中?例如,我希望所有TypeScript文件都能编译成解决方案中'\ tsbuild'目录下的单个Javascript文件。Visual Studio - Build之前 - TypeScript编译

眼下编译器所有的打字稿文件合并成一个JavaScript文件中指定的目录 - 这看起来是这样的:

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

然后,一旦他们在一个目录下,我们的目标是配置捆绑配置来提取它们并在发布期间缩小它们。另一个目的是在开发过程中帮助解决问题。

+0

不是VS打字稿扩展已经这样做了? –

+0

是和否......它将它编译到文件所在的同一目录中。我希望它将它编译到一个中心位置。 – anAgent

回答

3

一旦0.8.2.0发布(即将推出!),您就可以将目录传递给--out以获得所需的行为。目前,还没有一种特别优雅的方式来做到这一点。

+0

谢谢瑞恩。鉴于你在TypeScript上工作​​,我会接受你的话。 =) – anAgent

+0

请问[注释保存问题](http://stackoverflow.com/a/14206006/390407)在0.8.2.0中解决了吗?或者可能需要解决多长时间的粗略想法?我确信它在优先列表上很低。 – ryan

+0

在0.8.2.0版本中保留评论会更好一些,但是当新版本的解析器在以后的版本中上线时,它将得到很大的改进(我们的目标是,vanilla JS会以相同的格式/注释进行编译)。 –

2

随着TypeScript 0.8.2的发布,我做出了一些构建更改,现在我可以按照自己的方式工作。

欲了解更多信息,编译并保存,请上网:http://typescript.codeplex.com/wikipage?title=Compile-on-Save

首先我修改了*的.csproj,并补充说:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
    <TypeScriptTarget>ES5</TypeScriptTarget> 
    <TypeScriptIncludeComments>true</TypeScriptIncludeComments> 
    <TypeScriptSourceMap>true</TypeScriptSourceMap> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)' == 'Release'"> 
    <TypeScriptTarget>ES5</TypeScriptTarget> 
    <TypeScriptIncludeComments>false</TypeScriptIncludeComments> 
    <TypeScriptSourceMap>false</TypeScriptSourceMap> 
    </PropertyGroup> 
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" /> 

然后,我创建了一个后生成的步骤,副本我的档案使用此职位 https://stackoverflow.com/a/585188/1220302

将此添加到帖子构建

for /R "$(ProjectDir)modules\" %%f in (*.js, *.map) do copy %%f "$(ProjectDir)build\" 

我希望可以帮助别人.. =)

相关问题