我喜欢typescript背后的想法,但似乎无法弄清楚如何将其包含在ASP.Net MVC项目。我已经安装了Visual Studio扩展,但我似乎无法找到有关如何添加的示例或文档 *.ts 编译成的文件 *.js 文件。

编辑:实际上,我应该复制Win8示例的方式吗 .jsproj 包括和句柄 .ts 文件?或者这只适用于HTML/JS Win8项目?

有帮助吗?

解决方案

警告: 这个答案现在已经相当过时了,因为自从这个答案以来,Typescript和MVC都发生了重大变化。我稍后会尝试更新。-Richcoder

感谢 索尼 为了答案。

您可以使用"添加>新建项目"对话框将TypeScript文件添加到现有项目中。exampleImage 请注意,"Typescript文件"项不驻留在Web组下,但在这种情况下,它位于Visual C#的父项下。

这应该添加一个TypeScript文件,Visual Studio将完成其余工作。

然后,您需要将这些行添加到项目文件中:

 <ItemGroup>
    <AvailableItemName Include="TypeScriptCompile" />
 </ItemGroup>
 <ItemGroup>
    <TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
 </ItemGroup>
 <Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" />
 </Target>

它对我很好,但如果你遇到任何问题,请发表评论。

其他提示

这是正确的。所有你需要的是ms构建目标来构建。ts文件到.js文件。Win8示例显示了一个beforeBuild目标,用于在属于itemGroup TypeScriptCompile的所有文件上调用tsc,该文件定义为$(ProjectDir)***。ts(或全部。项目中的ts文件)。

复制此模式应该适用于任何msbuild项目,而不仅仅是Win8项目。

以下是我正在谈论的内容的示例:将此添加到任何msbuild项目中,您应该编译任何项目。ts文件到equivialnt。js文件,当你的构建开始。.

<ItemGroup> 
   <TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
</ItemGroup>


<Target Name="TypeScriptCompile" BeforeTargets="Build">
   <Message Text="Compiling TypeScript files" />
   <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

我抛出了一个nuget包,它将msbuild targets文件添加到您的项目中。它将运行tsc编译器并清理其输出,以便您可以双击Visual Studio中的错误并跳转到文件/行/列。

https://www.nuget.org/packages/Sholo.TypeScript.Build

对于您希望tsc编译的任何内容,您需要将"属性"窗口中的构建操作设置为"TypeScriptCompile"。从几天的修补与TypeScript,我发现,。正在进行引用的ts文件应该设置为TypeScriptCompile,但只被引用的文件不应该,而是ymmv。此外,您可能需要显示所有文件并添加原始文件。js文件。如果要分组相关。ts/。js/。d.ts文件一起,看看VsCommands扩展名。使用NetDemon/类似的扩展,工作流也非常好。

如果您正在使用 捆绑和缩小, ,我刚刚发布了一个IBundleTransform的实现,它将TypeScript编译为Javascript。开始了 GitHub 和NuGet(Install-Package TypeScriptBundleTransform)。如果你还没有使用捆绑和缩小,这是值得一看!

更新资料:

只需安装 Web要点2012 插件,您将在保存时自动编译-对于两者。js和。敏。js和一个整洁的分割视图,以查看您的TypeScript代码旁边的JavaScript输出。


这是我一直在使用的粗略方法:

右键单击您的项目>属性>构建事件

PreBuild框粘贴此(递归构建所有。项目中的ts文件):

forfiles /S /P $(ProjectDir) /m *.ts /c "cmd /c tsc @file"

用于构建特定的入口文件:

tsc $(ProjectDir)MyScripts/myfile.ts

我相信有更好的方法。

如果您正在使用 微软ASP.NET Web优化框架 (又名捆绑和缩小),然后尝试使用 束式变压器 安装模块 BundleTransformer.打字稿.除了将TypeScript-code编译为JS之外,您还可以通过使用Bundle Transformer的其他模块来生成js-code的缩小: BundleTransformer.[医]微电脑, BundleTransformer.结衣, BundleTransformer.关闭, BundleTransformer.JsMin, BundleTransformer.丑女BundleTransformer.封隔器.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top