Visual Studio Express 2012 和 Typescript 输出目录

3

我已经成功地将TypeScript插件安装到了VS中。 我想要更改编译后js文件的输出目录。当前js文件与ts文件在同一个目录下。 我找到了一个解决方案,说我应该安装Web Essentials,通过它我可以修改编译器设置。不幸的是,免费的VS Express不让我安装第三方软件。没关系,是否有其他方法来更改js文件的输出目录? 在命令行中,这是一个简单的--out标志。


我想不要脸地指出,你可以使用 https://github.com/basarat/grunt-ts :) - basarat
5个回答

6

我不熟悉Express的限制,但是以下是在Pro版中不使用Web Essentials的方法:

用您喜欢的文本编辑器打开项目内的.csproj文件。查找类似以下的属性组:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    ...
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
    ...
</PropertyGroup>

并在这两个元素的内部添加以下类似的属性:

<TypeScriptOutDir>my/dir</TypeScriptOutDir>

如果你打开 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\TypeScript\Microsoft.TypeScript.targets,你就可以看到这些属性是如何映射到命令行标志的,以及我是如何找出来的。
像我说的那样,我不知道Express是否会对修改.csproj文件施加任何限制,如果有问题请告诉我。

4
不需要编辑.csproj文件,只需进入项目属性并设置“将JavaScript输出重定向到目录”即可。 简单方式

2
TypeScript编译器有一个标志可以将输出重定向到目录中:
tsc --outDir "Path" app.ts

是的,我知道这个,但是在 Visual Studio 中我应该在哪里设置它呢? - mudlee
1
你在问题中提到了 --out 标志,它将输出合并为单个文件,因此我认为你可能不知道 --outDir,它将输出重定向到一个目录。 - Fenton

1
最后,我解决了这个问题。
解决方案: 我在csproj文件中添加了以下几行代码:
<ItemGroup>
    <TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
 </ItemGroup>
 <Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\tsc&quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot; --outDir myoutputdirectory', ' ')" />
 </Target>

1
我在TypeScript 1.8中遇到了这个问题,经过一番谷歌搜索,我发现TypeScript属性项目页面中的以下输出选项是不兼容的。
- 如果您选择将JavaScript输出合并到文件中,那么如果您想将.js和.map文件放在其他文件中,您必须在此处放置目录,并且不要选择重定向JavaScript输出目录。 - 另一方面,如果您想要单独的.js文件并将它们移动到特定目录中,则选择重定向JavaScript输出目录并保持未选择将JavaScript输出合并到文件中
例如,在我的情况下,我想要在特定目录中有一个组合的.js文件,那么我的设置如图所示:

Here I entered my directory and my combined java-script file in  **Combine JavaScript output into file**


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