【发布时间】:2014-05-02 21:54:13
【问题描述】:
不知为何,Typescript 突然停止可靠地编译成 JS 代码。
使用 VS2012、Typescript for VS 版本 0.8.3.1 和 Web Essentials 版本 2.6(设置为“保存时编译”)。
我可以创建一个新的 Typescript 文件并对其进行简单的更改(例如导出一个简单的 var 或函数)。我可以保存TS文件并查看JS翻译。
但是,一旦我添加了一个或多个 TS 定义文件(我使用的是 AMD)然后编辑 TS 文件,相应的 JS 文件中不会出现进一步的更改。对 TS 文件的编辑将不再更新 JS。 Typescript 也不再检查错误。
只有当我关闭并重新打开 VS2012 时,才会出现正确的 JS 文件。
我已经卸载/重新安装了 Typescript、Web Essentials 和 VS2012 无济于事。
有人对我如何解决这个问题有任何建议吗?我不知所措。
编辑
这是一个完全可重现的条件。今天,我格式化了我的驱动器并重新安装了VS2012。使用 64 位版本的 Windows 7。创建了一个新的 MVC4 项目。创建了一个新的 TS 文件。添加了几个定义文件。试图编辑默认的 getDist() 函数。已保存。没有更新 JS 文件。删除了定义文件。已保存。 JS 文件按预期正确更新。
无法想象只有我一个人遇到这个问题!!
请帮忙!
重新编辑 问题解决了。见下文。
【问题讨论】:
-
尝试用不同的代码创建一个新项目,看看那里是否也会发生这种情况。
-
我唯一能想到的是,Web Essentials 和 VS2012 都可能试图同时写入 JS 文件。如果您没有在 VS2012 > Tools > Options 中关闭 compile-on-save,我会这样做,以便 Web Essentials 可以负责。
-
新项目也会出现同样的问题。
-
@CCPony 这将是一个竞争条件,两个进程试图访问同一个文件。文件越大,进程运行的时间越长,发生冲突的可能性就越大。您可以在 Tools > Options > Text Editor > TypeScript > Project > Compile on Save 中找到 Visual Studio 设置(有两个复选框)。
-
我也遇到了同样的问题,目前还没有找到解决办法...
标签: visual-studio typescript web-essentials