【问题标题】:TypeScript 0.8.2 compile AMD modules on saveTypeScript 0.8.2 在保存时编译 AMD 模块
【发布时间】:2013-11-20 16:04:03
【问题描述】:

注意:我在 Visual Studio 2010 下使用 TypeScript,所以很遗憾,不能使用 Web Essentials 2012 作为解决方案。

TypeScript 0.8.2 向compile on save 添加了一项功能,我按照该页面上的说明在我的项目中启用了该功能。我对项目文件所做的唯一额外更改是添加一个

<TypeScriptModuleKind>amd</TypeScriptModuleKind>

每个组的属性,告诉 TypeScript 将我的文件构建为 AMD 模块。

当项目完全构建时,这可以正常工作,但是当我保存单个文件并触发自动编译时,它会在没有模块切换的情况下这样做,并且生成的 Javascript 不再起作用。

是否有强制保存时编译功能将某些参数应用于 tsc 调用?


更新:

再搜索一下,我发现 this work item 其他人也有同样的问题。它因无法复制而被关闭,所以任何人都可以确认它对他们有用吗?如果我应该接受这个报价:

项目文件中指定的 Compile on Save 选项...

暗示有某种方法可以将保存时编译的选项分别设置为我在上面链接到的 wiki 页面上定义的调试和发布选项?

【问题讨论】:

  • 您在使用 Web Essentials 吗?
  • @Anzeo 不,我在 Visual Studio 2010 下运行它,所以 Web Essentials 不是一个选项。我也在 2012 年尝试过这个(仍然没有网络必需品)并且同样的问题仍然存在,所以让 TypeScript 插件在 VS2010 下运行的黑客性质不是问题
  • 射击,我认为这可能是问题所在。项目文件中的TS编译器功能我没有摆弄过,所以这个atm恐怕帮不了你。
  • 复制这个有什么运气吗?你能分享你的项目文件吗?
  • @mohamedhegazy 当我问这个问题时,我在链接的工作项 (typescript.codeplex.com/workitem/696) 中添加了一条评论,并在其中附加了一个项目文件

标签: typescript


【解决方案1】:

此问题已在后续版本中修复;还有与为保存时编译指定输出文件的能力相关的问题。如果您使用的是 Visual Studio 2012 或 Visual Studio 2013,请考虑升级到更高版本。

您可以从https://typescript.codeplex.com/wikipage?title=TypeScript%200.9.5%20beta 试用 0.9.5 测试版

【讨论】:

  • 谢谢,很高兴听到它已修复。不幸的是,我们致力于为我们的项目使用 .NET 4.0,因此升级不是一种选择。没关系,我们一开始就知道在遗留 IDE 上选择尖端技术的风险,这并不是一个严重的错误。
【解决方案2】:

您可以在 .csproj 文件中定义自定义目标 - 或使用 Microsoft.TypeScript.targets 中定义的目标 - 然后将自定义工具与您的 .ts 文件相关联。

为此,只需将文件的“自定义工具”属性设置为 **MSBuild:***NameOfYourMSBuildTarget*

每次保存与自定义工具关联的文件时都会调用目标。

有关此方法的更多详细信息,请参阅我的answer to this question

【讨论】:

    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2012-11-29
    • 1970-01-01
    相关资源
    最近更新 更多