TypeScript只会生成一次样板代码

3
在更仔细地检查从*.ts文件生成的代码后,我发现如果扩展一个类,则会复制模板中的__extends函数多次,每次扩展任何内容都会复制一次...这可能是因为我使用Web Essentials编译TypeScript源文件,因此tsc不知道它只需要写一次吗?
以下是我的项目构建文件中与TypeScript相关的设置:
<PropertyGroup>
  <TypeScriptTarget>ES5</TypeScriptTarget>
  <TypeScriptIncludeComments>false</TypeScriptIncludeComments>
  <TypeScriptSourceMap>false</TypeScriptSourceMap>
  ...
</PropertyGroup>

我有一堆:

  <ItemGroup>
    <TypeScriptCompile Include="$(ProjectDir)src\Foo.ts" />
    <TypeScriptCompile Include="$(ProjectDir)src\Bar.ts" />
    <TypeScriptCompile Include="$(ProjectDir)src\Baz.ts" />
    ...
  </ItemGroup>

对于tsc有一个命令行选项,具体来说是--out,用于生成单个文件而不是一堆文件,但是将<Out><TypeScriptOut>添加到属性组似乎没有起作用...

1个回答

1
每个文件都会单独生成它。这是因为编译器会针对每个文件运行一次,并且不知道同一个函数将在另一个文件中定义。使用--out标志只会在输出文件的顶部插入此函数一次。但是目前在Visual Studio中没有使用该标志的选项。但是,您可以像Steve提到的那样手动编辑项目文件。
<Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc&quot; --out final.js @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

来源:https://dev59.com/dm_Xa4cB1Zd3GeqP14E9#15346708


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接