Jenkins 中的 TypeScript 构建错误,但不是本地的
TypeScript build error in Jenkins but not locally
你好,我在尝试构建 TypeScript 应用程序时遇到了我的 Jenkins 管道之一的问题。
管道签出 TypeScript 项目并运行:
yarn install
yarn build
但是在构建过程中出现错误,管道失败并显示错误:
│ TS2571: Object is of type 'unknown'.
我试图在 AWS EC2 实例上重现此错误,该实例使用与我的 Jenkins EC2 相同的 AMI 映像。我确保使用与我的 Jenkins 服务相同的节点版本 (v12.22.3)。但是在 运行 yarn install + build 之后,我没有收到这个错误。构建成功。
我可以看到 Jenkins 日志中的错误指的是 'error' 变量:
} catch (error) {
expect(error.name).toEqual('Error');
}
在谷歌搜索此错误后,解决方案似乎是更新代码以在错误对象上包含一个类型(由于 TypeScript 更新),但这不是我的代码,我不是typescript dev,我知道代码是在我的 VM 上构建的,使用与 node.js 相同的版本。所以我肯定可以让它在 Jenkins 上工作吗?
有没有人有任何提示可以帮助调试此问题?
谢谢
我敢打赌你安装了不同版本的 Typescript。您可能安装了不同版本的打字稿。
在 Typescript 3.5.1 中,捕获的错误类型为 any
。参见 playground
在 Typescript 4.6.2 中,捕获的错误类型为 unknown
。参见 playground
看起来是 Typescipt 4.4 (see this release note)。
在这两个版本之间的某个地方,类型发生了变化。看起来你的 CI 服务器是 运行 比你本地环境更新的版本。
如果您的机器和 CI 服务器依赖于全局安装的打字稿,则版本可能会有很大不同。我建议您更新本地打字稿以匹配 CI.
上的内容
你好,我在尝试构建 TypeScript 应用程序时遇到了我的 Jenkins 管道之一的问题。
管道签出 TypeScript 项目并运行:
yarn install
yarn build
但是在构建过程中出现错误,管道失败并显示错误:
│ TS2571: Object is of type 'unknown'.
我试图在 AWS EC2 实例上重现此错误,该实例使用与我的 Jenkins EC2 相同的 AMI 映像。我确保使用与我的 Jenkins 服务相同的节点版本 (v12.22.3)。但是在 运行 yarn install + build 之后,我没有收到这个错误。构建成功。
我可以看到 Jenkins 日志中的错误指的是 'error' 变量:
} catch (error) {
expect(error.name).toEqual('Error');
}
在谷歌搜索此错误后,解决方案似乎是更新代码以在错误对象上包含一个类型(由于 TypeScript 更新),但这不是我的代码,我不是typescript dev,我知道代码是在我的 VM 上构建的,使用与 node.js 相同的版本。所以我肯定可以让它在 Jenkins 上工作吗?
有没有人有任何提示可以帮助调试此问题? 谢谢
我敢打赌你安装了不同版本的 Typescript。您可能安装了不同版本的打字稿。
在 Typescript 3.5.1 中,捕获的错误类型为 any
。参见 playground
在 Typescript 4.6.2 中,捕获的错误类型为 unknown
。参见 playground
看起来是 Typescipt 4.4 (see this release note)。
在这两个版本之间的某个地方,类型发生了变化。看起来你的 CI 服务器是 运行 比你本地环境更新的版本。
如果您的机器和 CI 服务器依赖于全局安装的打字稿,则版本可能会有很大不同。我建议您更新本地打字稿以匹配 CI.
上的内容