我正在使用安装了Update 3的Visual Studio 2015。我有一个包含使用TypeScript编写的Angular 2应用程序的解决方案。遵循Angular自己的“ 5分钟快速入门”指南将该应用程序添加到了解决方案中:https : //angular.io/guide/quickstart
角度应用程序甚至还不完整,实际上它才刚刚开始开发。angular 2项目的所有配置文件都是直接从该指南中获取的,尚未修改。
该解决方案在我的本地计算机上构建良好。但是,当我执行启动构建的TFS签入时,解决方案无法在远程构建服务器上构建。
我在MSBuild步骤中遇到以下错误,并且它们都与TypeScript有关:
这些错误中的大多数会重复多次,指向角度2应用程序的各个部分。总共有29个错误。
有趣的是,在构建日志中的所有错误中,每个错误后面都带有对.csproj文件的引用,该文件包含angular应用程序。
据我了解,应基于tsconfig.json文件中定义的配置属性而不是Visual Studio项目的属性来编译TypeScript文件。实际上,当我在本地打开解决方案并尝试从Visual Studio中的属性修改TypeScript配置时,它告诉我由于存在tsconfig.json文件,这些属性已被禁用。
同样,一切都在本地构建良好,零错误。它只能在远程构建服务器上构建失败。
那么有人在这里有什么想法吗?远程构建服务器是否不是最新的,因此无法读取我的tsconfig.json文件?
只是为了彻底,这是我的tsconfig.json文件...
{
"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是在Visual Studio中引入了对tsconfig.json的改进支持时。希望我要做的就是让某人在TFS服务器上更新TypeScript。
您最好确保构建服务器(构建代理)上的环境与本地环境相同。这将大大降低构建失败的风险。
根据您的情况,尝试将TypeScript 1.5更新到版本1.8,然后再次对构建进行排队。如果仍然无法使用,则可以尝试不通过tfs在构建代理程序(机器)上手动构建,以缩小与代理程序环境或TFS构建定义设置有关的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句