如何将typescript添加到现有的Asp.Net MVC项目?[复制]
-
12-12-2019 - |
题
我喜欢typescript背后的想法,但似乎无法弄清楚如何将其包含在ASP.Net MVC项目。我已经安装了Visual Studio扩展,但我似乎无法找到有关如何添加的示例或文档 *.ts
编译成的文件 *.js
文件。
编辑:实际上,我应该复制Win8示例的方式吗 .jsproj
包括和句柄 .ts
文件?或者这只适用于HTML/JS Win8项目?
解决方案
警告: 这个答案现在已经相当过时了,因为自从这个答案以来,Typescript和MVC都发生了重大变化。我稍后会尝试更新。-Richcoder
感谢 索尼 为了答案。
您可以使用"添加>新建项目"对话框将TypeScript文件添加到现有项目中。 请注意,"Typescript文件"项不驻留在Web组下,但在这种情况下,它位于Visual C#的父项下。
这应该添加一个TypeScript文件,Visual Studio将完成其余工作。
然后,您需要将这些行添加到项目文件中:
<ItemGroup>
<AvailableItemName Include="TypeScriptCompile" />
</ItemGroup>
<ItemGroup>
<TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
</ItemGroup>
<Target Name="BeforeBuild">
<Exec Command=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" -target ES5 @(TypeScriptCompile ->'"%(fullpath)"', ' ')" 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=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" -target ES5 @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</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/类似的扩展,工作流也非常好。
更新资料:
只需安装 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.封隔器.