TFS 服务器错误(来自 Azure DevOps 扩展):在严格模式下使用 const

TFS server error (from Azure DevOps Extension) : Use of const in strict mode

我有 Azure DevOps 扩展,它在 Azure DevOps 和许多 TFS 中运行良好 versions.However 当我在其中一个随机 TFS 服务器 (TFS 2015) 中执行测试时,我遇到了错误。

注意:此扩展是用 Typescript 编写的,并在代码中使用了一些节点模块 (npm)

我已经检查过是否依赖于安装在 TFS 服务器中的 nodejs,但根据我的研究,即使在未安装 nodejs 的服务器中,此扩展运行也没有任何问题。根据代码,此错误发生在代码的第一行,它试图访问单独文件中的另一个 class。 我怀疑这个问题是由于 TFS 服务器中的某种错误配置造成的。

这是我在 TFS 控制台中得到的错误

    Set workingFolder to default: C:\Local\Toolset\tasks\smipletest.1.5
    C:\Local\Toolset\tasks\smipletest.1.5\App.js:11
    const azore = require('./Azore');
    ^^^^^
    SyntaxError: Use of const in strict mode.
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

此问题的可能原因是什么。可能的补救步骤是什么?

我找到了这个问题的根本原因。

  • 每个 TFS 代理都有自己的节点应用程序包含在里面 代理 文件夹。
  • 由于这个原因,无论我们从外部(到同一台服务器)安装哪个版本,它总是访问安装在 TFS 代理中的节点。
  • 如果任何文件(node.exe 或任何依赖文件)损坏,它会提示一条错误消息(如中所示 问题)

因此,要解决此问题,我们必须解决安装在 TFS 代理中的节点的问题。或者最简单的选择是卸载当前代理,从 TFS 服务器下载代理的新副本。和 re-configure 代理在同一服务器中。