【问题标题】:Run TSC on Hosted Build Agent在托管构建代理上运行 TSC
【发布时间】:2018-03-21 04:03:45
【问题描述】:

我正在学习 TypeScript,并构建了一个非常简单的应用程序,我想使用 VSTS 构建它,然后在 Azure App Service 上部署为 Web 应用程序。我非常简单的构建定义步骤如下:

  1. “Node Tool Installer (preview)”安装 Node 6.x
  2. “npm”为我的依赖项(TypeScript、jQuery、Bootstrap)运行“npm install”
  3. “命令行”运行 'tsc --project tsconfig.json'
  4. “Azure App Service Deploy”部署应用程序

我遇到的问题是在调用 TypeScript 编译器时的第 3 步...我收到有关“--project”命令行参数的错误,因为安装在托管构建代理上的 TypeScript 版本是 v1 .4 但我是针对 v2.5.3 开发的。

如何获得正确版本的 TypeScript 编译运行以编译应用程序?看起来很简单,但我没有找到任何不涉及使用 MSBuild 和 NuGet 的 .NET 项目的答案(这绝对不是:HTML、CSS 和 TS 转译为 JS)。

【问题讨论】:

    标签: typescript azure-devops azure-pipelines


    【解决方案1】:

    由于在运行 npm install 命令期间已经在项目中安装了 TypeScript。简单的方法是:

    1. 在 package.json 文件中添加脚本以运行 tsc 命令(脚本部分):"tsc":"tsc -project tsconfig.json"
    2. 添加 NPM 任务(命令:custom;带有 package.json 的工作文件夹:[package.json 文件路径],例如 $(Build.SourcesDirectory);命令和参数:run tsc

    【讨论】:

    • 如果我将 "tsc": "tsc --version" 添加到 package.json 并从本地命令行运行 "npm run tsc",则可以。如果我将其更改为“tsc”:“tsc -p”。并尝试运行它,输出在输出目录中创建,但我收到一系列 npm 错误消息,表明命令失败。
    • 在进一步查看输出后,我认为问题出在基于此错误消息的 jquery 绝对类型库:“node_modules/@types/jquery/index.d.ts(2957 ,63): 错误 TS2304: 找不到名称 Iterable”。我假设这会导致所有“npm ERR!”行...这将使构建失败。希望使用旧版本可以解决这个问题(最新版本没有)。
    • 最终找到了this link,它为我指明了正确的方向。只需要找出“lib”选项添加了什么,这样我就可以更好地理解问题。感谢@starain-MSFT 的帮助
    【解决方案2】:

    通过VSTS官网,现在你有“TypeScript 2.0.6 for Visual Studio 2015”

    https://docs.microsoft.com/en-us/vsts/build-release/concepts/agents/hosted

    无论如何,如果错误仍然存​​在,或者您想使用较新版本的 Typescript,您可以在本地机器上运行该命令,并参考 package.json 中的依赖项。

    要访问那个 Typescript 库包,就这么简单:

    node_modules/typescript/bin/tsc
    

    您甚至可以尝试在本地运行该命令,例如,在本地运行此命令:

    node_modules/typescript/bin/tsc --version
    

    应该告诉你安装的TS依赖的版本。

    我有 TS 由 VSTS 在 Azure 上托管的项目,所以参考本地版本的 TS 应该没问题。

    【讨论】:

    • 在本地尝试此操作时,Windows 提示我选择打开文件的程序。如果我选择记事本,那么结果是“node_modules\typescript\bin\tsc”文件的内容(启动节点并加载'../lib/tsc'文件的shell脚本) require('../lib /tsc.js'))
    • @KyKo 您尝试的操作有问题。您可以尝试使用“节点”作为前缀吗?节点 node_modules/....
    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 2016-05-01
    • 2020-06-08
    • 2018-10-29
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多