我正在尝试将我的打字稿代码编译成javascript。 我想将其与另一个项目合并,但是由于我的主项目是另一个名称,因此除非我找到一种方法来完全不使用项目名称输出文件,或者更改编译后的输出项目名称,否则无法合并它。我也对不同的项目有很多依赖性,这些项目的名称不能更改。我想知道是否可以更改csproj文件本身中的名称,或者使用目标来更改输出dir项目名称。
我正在使用.targets文件,并且我已经尝试使用gulp和tsconfig,但是没有运气。
文件:
C:\ ProjectMain \ Project1 \ ts
helloWorld.ts
C:\ ProjectMain \ Project1 \ js >
当前输出:
C:\ ProjectMain \ Project1 \ js \ Project1
helloWorld.js
想要的输出:
C:\ ProjectMain \ Project1 \ js \ Project2
helloWorld.js
答案 0 :(得分:1)
我正在使用.targets文件,并且我已经尝试使用gulp和 tsconfig,但没有运气。
不熟悉如何在tsconfig中使用它。但是似乎您正在使用msbuild和targets文件来构建该项目,您可以编辑该项目文件以自定义构建过程。
由于我们可以在.njsprj
(Node.js的项目文件),.csproj
(普通C#项目的项目文件)或xx.targets
文件中指定custom target。您可以使用下面的脚本将C:\ProjectMain\Project1\js\Project1
的内容复制到C:\ProjectMain\Project1\js\Project2
。
<Project...>
...
<Target Name="CustomPostBuild" AfterTargets="build">
<ItemGroup>
<!--Specify which files we will move-->
<FilesToMove Include="C:\ProjectMain\Project1\js\Project1\*.*"/>
</ItemGroup>
<MakeDir Directories="C:\ProjectMain\Project1\js\Project2" />
<Move SourceFiles="@(FilesToMove)" DestinationFolder="C:\ProjectMain\Project1\js\Project2"/>
</Target>
</Project>
您可以使用msbuild tasks自定义构建,copy task,delete task,
move task ...这些路径可以用$(ProjectDir)
,$(SolutionDir)
...之类的宏替换。如果路径C:\ProjectMain\Project1\
中的项目文件是$(ProjectDir)\ts
< => C:\ProjectMain\Project1\ts
。
构建顺序: tsc.exe compile xx.ts
到xx.js => custom build target