我正在尝试将typescript模块添加到构建中。该解决方案可以从IDE,命令行上的MSBuild甚至Visual Studio Online上构建。但是,当我在TeamCity中构建时,我收到以下错误:
C:\TeamCity\buildAgent\work\cbd612042b438c8c\web\LobApp\CatBallBusinessWeb\Scripts\PurchaseOrderModule.ts(2, 15): error TS1148: Build: Cannot compile modules unless the '--module' flag is provided.
显然,TeamCity构建没有找到正确的typescript.targets文件。 “C:\ Program Files(x86)\ msbuild \ Microsoft \ VisualStudio \ v14.0 \ TypeScrip \ Microsoft.TypeScript.targetst”下面的行是应该应用--module编译器标志的位置。
<TypeScriptBuildConfigurations Condition="'$(TypeScriptModuleKind)' != '' and '$(TypeScriptModuleKind)' != 'none'">$(TypeScriptBuildConfigurations) --module $(TypeScriptModuleKind)</TypeScriptBuildConfigurations>
在相关的项目安排中,在“TypeScript Build”下,我选择了“AMD”模块系统..这应该触发上面的一行。
TeamCity构建日志与我在命令行中使用MSBuild编译时看到的构建日志不同:
TeamCity的:
[18:15:07]:[web \ LobApp \ CatBallBusinessWeb \ CatBallBusinessWeb.csproj] PreComputeCompileTypeScript [18:15:07]:[PreComputeCompileTypeScript] 使用程序集“C:\ Program Files”中的“VsTsc”任务 (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \打字稿\ TypeScript.tasks.dll”。 [18:15:07]:[PreComputeCompileTypeScript] VsTsc [18:15:07]:[VsTsc] 任务参数:ToolPath = C:\ Program Files(x86)\ Microsoft SDKs \ TypeScript [18:15:07]:[VsTsc]任务参数:ToolExe = tsc.exe [18:15:07]:[VsTsc]任务参数:Configurations = --sourcemap --target ES5 --noEmitOnError COMPUTE_PATHS_ONLY [18:15:07]:[VsTsc]任务参数: FullPathsToFiles = 区\管理\脚本\ PurchaseOrderModule.ts 脚本\软件\采购\ PurchaseOrderEdit.ts 脚本\ PurchaseOrderModule.ts 脚本\ PurchaseOrderIndex.ts 脚本\分型\ jQuery的\ jquery.d.ts 脚本\分型\ knockout.mapping \ knockout.mapping.d.ts 脚本\分型\ knockout.validation \ knockout.validation.d.ts 脚本\分型\淘汰赛\ knockout.d.ts 脚本\分型\时刻\时刻,node.d.ts 脚本\分型\时刻\ moment.d.ts
Vs以上。 MSBuild命令行:
在文件“C:\ Program Files”中定位“PreComputeCompileTypeScript” (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \打字稿\ Microsoft.TypeScript.targets” 来自项目 “d:\ dev的\网络\ lobapp \ CatBallBusinessWeb \ CatBallBusinessWeb.csproj” (目标“CompileTypeScript”取决于它):使用“VsTsc”任务 程序集“C:\ Program Files (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \打字稿\ TypeScript.tasks.dll”。 任务“VsTsc”任务参数:ToolPath = C:\ Program Files (x86)\ Microsoft SDKs \ TypeScript任务参数:ToolExe = tsc.exe
任务参数:配置= - 模块AMD --sourcemap --target ES5 --noEmitOnError COMPUTE_PATHS_ONLY任务参数: FullPathsToFiles = 区\管理\脚本\ PurchaseOrderModule.ts 脚本\软件\采购\ PurchaseOrderEdit.ts 脚本\ PurchaseOrderModule.ts 脚本\ PurchaseOrderIndex.ts 脚本\分型\ jQuery的\ jquery.d.ts 脚本\分型\ knockout.mapping \ knockout.mapping.d.ts 脚本\分型\ knockout.validation \ knockout.validation.d.ts 脚本\分型\淘汰赛\ knockout.d.ts 脚本\分型\时刻\时刻,node.d.ts 脚本\分型\时刻\ moment.d.ts
TeamCity日志中缺少突出显示的部分。
在TeamCity中,我正在直接构建解决方案..同样在其他地方构建的解决方案。我选择了Visual Studio 2015工具。我还要提一下,这个解决方案是从TeamCity工作目录的命令行构建的。
我不是构建,团队城市或打字稿专家。所以我不确定如何进一步调查。我怎样才能弄清楚为什么没有运行正确的目标文件?鉴于这在其他任何地方都很好,我觉得这是一个TeamCity错误。另一方面,我无法想象TeamCity如何运行MSBuild错误。
任何帮助表示感谢。