2

如何强制 Visual Studio 2012 始终使用由 TypeScript 创建的生成的 JavaScript 文件的最新版本?

我在我的项目文件中使用以下定义:

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

当我清理和重建项目时,app.js 会相应更新。

但是,出于某种奇怪的原因,当我尝试使用 Internet Explorer 调试解决方案时,Visual Studio 使用的是过时版本的 app.js,这会使我的断点无效。

这里发生了什么?

4

1 回答 1

4

这里最可能的问题不是真正的 TypeScript 或 JavaScript - Internet Explorer 只是缓存 JavaScript 文件并使用过时的版本。

如果您正在引用单个脚本,您可以通过更改 URI 的任意部分来缓存它:

<script src="myscript.js?1"></script>

如果每次要替换缓存版本时增加 1,则会导致加载新脚本。您可以通过转储时间戳代替 1 来自动执行此操作。

如果您使用的是我在 MVC4 中推荐的捆绑,则捆绑器将附加脚本的哈希值,其作用相同。

于 2012-11-21T17:16:01.590 回答