当前位置: 首页 > 知识库问答 >
问题:

编译TypeScript错误代码,设置为“退出代码1”

郗缪文
2023-03-14
get topLeft()      { return this._topLeft;             }

set topLeft(value) {  this._topLeft = value; Recalc(); }

上面的代码在TypeScript Play中可以找到,但我在从Visual Studio 2012编译它时收到了构建错误< code >错误“以代码1退出”

有人尝试在TypeScript中获取、设置并成功构建吗?

共有2个答案

田博易
2023-03-14

从0.8.2开始有了另一个变化。一些常见的TypeScript构建内容已从您的. csproj移动到外部构建文件。像这样:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />

你的。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>

要获得理想的效果,只需将ES3改为ES5

为了更深入地了解这最终如何作为对TypeScript编译器的调用的一部分,请查看Microsoft.TypeScript.targets文件。

祝你好运。

马德宇
2023-03-14

你需要以 ECMAScript v5 为目标,即将 -target ES5 参数传递给编译器。这需要在项目文件目标配置中设置。

我不知道VS是否有任何用于编辑目标配置的内置机制,所以我只能告诉您如何手动完成。只需打开<代码>。csproj项目文件,查找TypeScript编译器命令所在的Target节点,并添加-targetES5

在我的配置中,它看起来像这样:

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

更新

从版本0.8.1.0开始,删除了硬编码版本依赖,并添加了对源映射的支持,因此Target节点现在默认如下:

<Target Name="BeforeBuild">
    <Message Text="Compiling TypeScript files" />
    <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
    <Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

注入目标参数仍然很容易,只需将其放在tsc$(TypeScriptSourceMap)之后:

<Message Text="Executing tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
<Exec Command="tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />

 类似资料:
  • 我最近在部署到我们的共享主机时遇到了问题。从 Visual Studio 通过 Web 部署进行部署时,99% 的时间我在登录后在登录页面或主页上收到此错误。有时我可能会点击几下不同的部分,然后它就会击中。它通常会在几分钟到90分钟后消失。 运行Windows Server 2012 R2 Standard、IIS8和.NET 4.5的Web主机。 Web主机建议我需要使用Visual Studi

  • 问题内容: 用一些错误代码退出程序的惯用方式是什么? 的文档说:“程序立即终止;延迟的函数不运行。”,仅调用。对于不是严重错误的事情,终止程序而不运行延迟函数似乎是极端的。 我是否应该绕过一些表明存在错误的状态,然后在某个我知道可以安全退出并已运行所有延迟函数的位置进行调用? 问题答案: 我在大多数实际软件包中都遵循了这些原则,以便尽快采用该约定并适当终止该约定:

  • 我正在使用鲍尔安装几个库。出于演示目的,我正在安装引导程序。无论包,我收到以下错误: 我已尝试使用以下解决方案删除第一个错误-我在此搜索中发现: 但是,这不起作用,该页面上的任何其他解决方案也不起作用。在搜索第二个错误的解决方案时,如果您位于公司网络/防火墙后面,则为代理服务器设置用户名/pwd似乎可以解决此问题。但是,我没有使用代理服务器,因为我使用的是家用电脑/网络(windows 7 x64

  • 我试图在vscode中调试一个flutter的演示应用程序,错误显示为ADB退出,代码1执行流式安装。我卸载现有的Flutter演示应用程序。

  • 尝试在Windows 10上使用CMake和MSBuild构建TensorFlow时,运行MSBuild时出现以下错误: 所以我只收到一条错误消息,这只是告诉我cmd.exe已关闭,错误代码表明存在问题,但不是问题所在。那么,我该如何找出导致此问题的原因,以便解决它?