Dex*_*ude 13 javascript typescript
get topLeft() { return this._topLeft; }
set topLeft(value) { this._topLeft = value; Recalc(); }
Run Code Online (Sandbox Code Playgroud)
上面的代码可以在TypeScript Play中找到,但是从Visual Studio 2012编译它时收到了构建错误 error "exited with code 1"
有没有人尝试过,在TypeScript中设置并成功构建?
ndm*_*ndm 19
您需要定位ECMAScript v5,-target ES5即将参数传递给编译器.这需要在项目文件目标配置中设置.
我不知道VS是否有任何内置的机制来编辑目标配置,所以我只能告诉你如何手动完成.只需打开.csproj项目文件,查找TargetTypeScript编译器命令所在的节点,然后添加-target ES5参数.
在我的配置中它看起来像这样:
<Target Name="BeforeBuild">
<Exec Command=""$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc" -target ES5 @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
Run Code Online (Sandbox Code Playgroud)
更新
从版本0.8.1.0开始,删除了硬编码版本依赖项并添加了对源映射的支持,因此Target默认情况下节点现在看起来像这样:
<Target Name="BeforeBuild">
<Message Text="Compiling TypeScript files" />
<Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
<Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>
Run Code Online (Sandbox Code Playgroud)
注入target参数仍然非常简单,只需将其放在tsc或$(TypeScriptSourceMap):
<Message Text="Executing tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
<Exec Command="tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
Run Code Online (Sandbox Code Playgroud)
小智 9
截至0.8.2已经有了另一个变化.一些常见的TypeScript构建内容已从.csproj移至外部构建文件.像这样:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />
Run Code Online (Sandbox Code Playgroud)
您的.csproj仍然可以通过将它们包含在构建中的元素中来设置TypeScript构建的一些参数.其中一个元素是ES版本.模板为我创建了两个组,一个用于调试,一个用于发布:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES3</TypeScriptTarget>
<TypeScriptIncludeComments>true</TypeScriptIncludeComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptTarget>ES3</TypeScriptTarget>
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
为了达到预期的效果,只需将ES3更改为ES5即可
为了更深入地了解这最终如何作为调用TypeScript编译器的一部分,请查看Microsoft.TypeScript.targets文件.
祝好运,
| 归档时间: |
|
| 查看次数: |
13951 次 |
| 最近记录: |