Typescript 类型脚本编译器变慢了吗?
我正在用TypeScript开发Win8应用程序 为了编译我的typescript代码,我添加了Typescript 类型脚本编译器变慢了吗?,typescript,Typescript,我正在用TypeScript开发Win8应用程序 为了编译我的typescript代码,我添加了winrt.d.ts和winjs.d.ts,然后引用了它们 使用: 编译和构建成功,但IDE的intelliSense速度非常慢。我只是打开了winrt.d.ts并检查了文件。该文件有18770行,这是一个需要动态编译的巨大文件 是否有任何选项或方法可以引用那些巨大的定义文件而不必像lib.d.ts那样重新编译 这种缓慢严重影响了我的打字选择 更新: 在当前编译器版本(0.8.0)上,没有解决方案
winrt.d.ts
和winjs.d.ts
,然后引用了它们
使用:
编译和构建成功,但IDE的intelliSense速度非常慢。我只是打开了winrt.d.ts
并检查了文件。该文件有18770行,这是一个需要动态编译的巨大文件
是否有任何选项或方法可以引用那些巨大的定义文件而不必像lib.d.ts
那样重新编译
这种缓慢严重影响了我的打字选择
更新:
在当前编译器版本(0.8.0)上,没有解决方案。
希望在不久的将来的版本中看到最佳性能增益
更新:
下面是我简单的提高开发性能的方法。
我只是创建了winrt.compact.d.ts
。
然后只复制实际使用的名称空间的一部分
然后保存文件
幸运的是,文件(winrt.d.ts
)看起来像是生成的
来自多个声明文件。因此,每个名称空间都是
与其他人明显分开。
为WinRT制作精简版要容易得多。如果我错了,请纠正我,但我不认为编译器以任何特殊方式处理
lib.d.ts
。我看了一下源代码,下面是处理lib.d.ts
的代码片段:
if(this.compilationSettings.useDefaultLib) {
var compilerFilePath = this.ioHost.getExecutingFilePath();
var binDirPath = this.ioHost.dirName(compilerFilePath);
var libStrPath = this.ioHost.resolvePath(binDirPath + "\\lib.d.ts");
code = new TypeScript.SourceUnit(libStrPath, null);
this.compilationEnvironment.code.push(code);
}
如果用户请求包含lib.d.ts
,只需将其作为要编译的第一段代码添加到编译环境中即可。所有其他源文件(存储在opts.unnamed
中)以完全相同的方式添加:
for(var i = 0; i < opts.unnamed.length; i++) {
code = new TypeScript.SourceUnit(opts.unnamed[i], null);
this.compilationEnvironment.code.push(code);
}
for(变量i=0;i
因此,如果未以特殊方式处理lib.d.ts
,则这也不可能用于其他(声明)此外,在我的系统中,lib.d.ts
有7677行,这比winrt.d.ts
报告的18770行要少很多,因此可能是所有行的总和太多,编译器无法达到可接受的速度
除此之外,我唯一的想法是“其他东西”导致了您的机器的减速。如果您向我提供了指向库的链接和代码片段,我至少可以测量编译在我的系统上运行的时间。当前Codeplex上有一个未解决的工作项: 目前,您无法对此进行任何改进(除了为编译器提供更多硬件!),但希望工作项能够被选中,问题将得到解决
for(var i = 0; i < opts.unnamed.length; i++) {
code = new TypeScript.SourceUnit(opts.unnamed[i], null);
this.compilationEnvironment.code.push(code);
}