对于Angular 2应用程序,TFS构建失败(TypeScript错误),但在本地构建一切正常
我正在使用安装了更新3的Visual Studio 2015。我有一个解决方案,它包含一个用TypeScript编写的Angular 2应用程序。此应用程序通过Angular自己的“5分钟快速启动”指南添加到解决方案中: angular应用程序甚至还不完整,事实上它还刚刚开始开发。angular 2项目的所有配置文件都直接取自该指南,尚未修改 这个解决方案在我的本地机器上构建得很好。但是,当我执行启动构建的TFS签入时,解决方案无法在远程构建服务器上构建 我在MSBuild步骤中遇到以下错误,它们都与TypeScript相关:对于Angular 2应用程序,TFS构建失败(TypeScript错误),但在本地构建一切正常,angular,typescript,tfs,tfsbuild,Angular,Typescript,Tfs,Tfsbuild,我正在使用安装了更新3的Visual Studio 2015。我有一个解决方案,它包含一个用TypeScript编写的Angular 2应用程序。此应用程序通过Angular自己的“5分钟快速启动”指南添加到解决方案中: angular应用程序甚至还不完整,事实上它还刚刚开始开发。angular 2项目的所有配置文件都直接取自该指南,尚未修改 这个解决方案在我的本地机器上构建得很好。但是,当我执行启动构建的TFS签入时,解决方案无法在远程构建服务器上构建 我在MSBuild步骤中遇到以下错误,它
- 错误TS2307:生成:找不到模块“@angular/core”
- 错误TS1219:构建:对装饰器的实验性支持是一项功能,在将来的版本中可能会发生更改。指定“--experimentalDecorators”以删除此警告
- 错误TS2315:生成:类型“any”不是泛型
- 错误TS1148:生成:除非提供“-module”标志,否则无法编译模块
- 错误TS2304:生成:找不到名称“it”
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
},
"compileOnSave": true
}
编辑
更新:好的,我想我正在缩小这个问题的范围。似乎在TFS构建中,我的tsconfig.json肯定没有被读取
这是我在本地运行MSBuild时的日志
PreComputeCompileTypeScriptWithTSConfig:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\[MY PATH GOES HERE]\tsconfig.json"
CompileTypeScriptWithTSConfig:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\[My PATH GOES HERE]\tsconfig.json"
但这里是在远程TFS构建上发生的事情
PreComputeCompileTypeScript:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.5\tsc.exe --sourcemap --target ES5 --noEmitOnError COMPUTE_PATHS_ONLY
CompileTypeScript:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.5\tsc.exe --sourcemap --target ES5 --noEmitOnError
所以。。。我的构建服务器使用的是TypeScript 1.5,而本地使用的是1.8。当然,1.8就是在VisualStudio中引入了对tsconfig.json的改进支持的时候。希望我所要做的就是让某人更新TFS服务器上的TypeScript。您最好确保构建服务器(构建代理)上的环境与本地服务器上的环境相同。这将大大降低构建失败的风险
在您的情况下,请尝试将TypeScript 1.5更新为1.8版,并再次对生成进行排队。如果仍然不起作用,您可以尝试在生成代理(计算机)上手动生成,而不是通过tfs来缩小问题范围,无论是与代理环境还是tfs生成定义设置有关。是的,这正是我们要解决的问题,也是我发布编辑的原因。TFS构建服务器没有运行Visual Studio Update 3,这是在添加TypeScript 1.8以及对tsconfig.json的支持时发生的。因此,在TFS服务器上安装更新3之前,类型脚本将无法在构建时正确传输。我们今天应该发布更新3,我可能最终能够解决这个问题。你解决问题了吗?@squadwuschel是的,请参阅原始问题底部的编辑。生成服务器未安装Visual Studio Update 3,这使您能够在生成时使用TypeScript 1.8并支持.tsconfig文件。更新生成服务器修复了该问题。