由于 TypeScript,TeamCity 构建失败 - TS2304 和 TS7006
TeamCity build fails because of TypeScript - TS2304 and TS7006
TeamCity Enterprise 2017.1(内部版本 46533)构建失败 - 使用 Visual Studio 2017 Pro
构建良好。
在 TeamCity 中构建步骤:
NuGet Installer
Node.js NPM
Visual Studio (sln) -> Set for Microsoft Visual Studio 2017
即使在我的本地机器上构建良好,也会出现这些错误。我在 .tsconfig
中有 "noImplicitAny": true
,不想更改 TS7006
。为什么我在 TeamCity 中出现这些错误,但在我的本地计算机上却没有?
完整的错误日志:https://pastebin.com/Wj0f7pXr
我对 TS2304: Build:Cannot find name 'object'.
的最后两个错误有一个想法。它在日志中说:
[10:36:35] [VsTsc] C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsc.exe --project "T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\tsconfig.json" --listEmittedFiles
在 TypeScript 2.2
中添加了对象,但它仍然没有解释其他错误。
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html
来自构建服务器的 TypeScript 信息:
C:\Users\COMPANY-BUILD-01>tsc --version
Version 2.3.4
C:\Users\COMPANY-BUILD-01>where tsc
C:\Users\COMPANY-BUILD-01\AppData\Roaming\npm\tsc
C:\Users\COMPANY-BUILD-01\AppData\Roaming\npm\tsc.cmd
编译错误(1):
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(47, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(47, 40): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(49, 18): error TS7006: Build:Parameter 'aboutModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(52, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(52, 40): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(54, 18): error TS7006: Build:Parameter 'factsModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(57, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(57, 43): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(59, 18): error TS7006: Build:Parameter 'sidePaneModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(62, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(62, 41): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(64, 18): error TS7006: Build:Parameter 'footerModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(67, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(67, 42): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(69, 18): error TS7006: Build:Parameter 'optionsModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(72, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(72, 44): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(74, 18): error TS7006: Build:Parameter 'contactModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\Inventory\index.tsx(24, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\Inventory\index.tsx(24, 44): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\Inventory\index.tsx(26, 18): error TS7006: Build:Parameter 'inventory' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\node_modules\@types\react-router\index.d.ts(82, 23): error TS2304: Build:Cannot find name 'object'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\node_modules\@types\react-router\index.d.ts(83, 13): error TS2304: Build:Cannot find name 'object'.
已检查 VS Developer 命令提示符:
C:\Program Files (x86)\Microsoft Visual Studio17\Community>tsc --version
Version 2.1.5
然后我尝试从 VS 17 的 TypeScripts 主页下载最新版本,但它仍然显示相同的结果。
https://www.typescriptlang.org/index.html#download-links
然后我在开发服务器上启动 Visual Studio -> 工具 -> 扩展和更新... -> 产品更新 -> 安装最新的 Visual Studio 更新。对我来说是 Visual Studio Update 15.2 (26430.13)
.
此版本将 TypeScript 升级到 2.2.3 并解决了所有错误。
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.13
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
C:\Program Files (x86)\Microsoft Visual Studio17\Community>tsc -v
Version 2.2.3
TeamCity Enterprise 2017.1(内部版本 46533)构建失败 - 使用 Visual Studio 2017 Pro
构建良好。
在 TeamCity 中构建步骤:
NuGet Installer
Node.js NPM
Visual Studio (sln) -> Set for Microsoft Visual Studio 2017
即使在我的本地机器上构建良好,也会出现这些错误。我在 .tsconfig
中有 "noImplicitAny": true
,不想更改 TS7006
。为什么我在 TeamCity 中出现这些错误,但在我的本地计算机上却没有?
完整的错误日志:https://pastebin.com/Wj0f7pXr
我对 TS2304: Build:Cannot find name 'object'.
的最后两个错误有一个想法。它在日志中说:
[10:36:35] [VsTsc] C:\Program Files (x86)\Microsoft SDKs\TypeScript.1\tsc.exe --project "T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\tsconfig.json" --listEmittedFiles
在 TypeScript 2.2
中添加了对象,但它仍然没有解释其他错误。
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html
来自构建服务器的 TypeScript 信息:
C:\Users\COMPANY-BUILD-01>tsc --version
Version 2.3.4
C:\Users\COMPANY-BUILD-01>where tsc
C:\Users\COMPANY-BUILD-01\AppData\Roaming\npm\tsc
C:\Users\COMPANY-BUILD-01\AppData\Roaming\npm\tsc.cmd
编译错误(1):
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(47, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(47, 40): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(49, 18): error TS7006: Build:Parameter 'aboutModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(52, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(52, 40): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(54, 18): error TS7006: Build:Parameter 'factsModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(57, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(57, 43): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(59, 18): error TS7006: Build:Parameter 'sidePaneModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(62, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(62, 41): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(64, 18): error TS7006: Build:Parameter 'footerModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(67, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(67, 42): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(69, 18): error TS7006: Build:Parameter 'optionsModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(72, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(72, 44): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\App.tsx(74, 18): error TS7006: Build:Parameter 'contactModel' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\Inventory\index.tsx(24, 9): error TS2304: Build:Cannot find name 'fetch'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\Inventory\index.tsx(24, 44): error TS7006: Build:Parameter 'response' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\Features\Client\Inventory\index.tsx(26, 18): error TS7006: Build:Parameter 'inventory' implicitly has an 'any' type.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\node_modules\@types\react-router\index.d.ts(82, 23): error TS2304: Build:Cannot find name 'object'.
T:\TeamCity\buildAgent\work3ae47e37445f5d\Project\Project.Web\node_modules\@types\react-router\index.d.ts(83, 13): error TS2304: Build:Cannot find name 'object'.
已检查 VS Developer 命令提示符:
C:\Program Files (x86)\Microsoft Visual Studio17\Community>tsc --version
Version 2.1.5
然后我尝试从 VS 17 的 TypeScripts 主页下载最新版本,但它仍然显示相同的结果。
https://www.typescriptlang.org/index.html#download-links
然后我在开发服务器上启动 Visual Studio -> 工具 -> 扩展和更新... -> 产品更新 -> 安装最新的 Visual Studio 更新。对我来说是 Visual Studio Update 15.2 (26430.13)
.
此版本将 TypeScript 升级到 2.2.3 并解决了所有错误。
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.0.26430.13
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
C:\Program Files (x86)\Microsoft Visual Studio17\Community>tsc -v
Version 2.2.3