首页 > 解决方案 > 无法在 Bitbucket Pipeline 上构建 Typescript 应用程序

问题描述

我在尝试让我的 TS 应用程序在 Bitbucket 管道中编译时遇到问题。

这是我的 .yaml 文件:

image: node:10.16.3

pipelines:
  pull-requests:
    '**':
      - step:
          name: Install dependencies
          caches:
            - node
          script:
            - npm install -g typescript
            - npm install
      - parallel:
        - step:
            name: Build App
            caches:
              - node
            size: 2x
            script:
              - node -v && npm -v && tsc -v
              - npm run build
        - step:
            name: Run Tests
            caches:
              - node
            script:
              - echo "Run tests"

但是它失败并出现以下错误:

bash:tsc:找不到命令

我花了很长时间谷歌搜索试图找到答案,但我没有运气解决这个问题。几个月前我尝试过,但失败了,今天我回过头来试一试,但仍然没有成功。

任何帮助都将受到应有的赞赏。谢谢您的支持

标签: typescriptyamlbitbucket-pipelines

解决方案


根据您的问题和评论,这里有两个单独的问题:

  1. 顶级管道脚本找不到tsc,可能是因为安装包后它的环境没有更新typescript。我建议只是- node -v && npm -v && tsc -v永久地省略这条线(或至少它的&& tsc -v一部分),因为无论如何,当你尝试时,任何丢失的人都会很快出现- npm run build
  2. 您的管道内存不足。size: 2x8GB 似乎是您现在可以请求的最大容量,因此您必须查看构建脚本以了解减少内存占用的方法。一些想法:
    • 您已经在安装步骤中要求使用最新版本的 TypeScript(这本身可能令人担忧;考虑未来的重大更改),但您使用的是 Node.js 10。我不知道 Node.js 14 是否会有占地面积小,但值得一试。
    • 确保您的构建脚本本身没有并行运行任何东西。(parallel管道配置中的步骤不计算在内,因为它使用的是单独的 VM。)
    • 检查您的构建脚本调用的工具的选项,以获得可以打开的优化。
    • 在最坏的情况下,您可能不得不以某种方式将项目的构建拆分为适合 Bitbucket 限制的部分。

推荐阅读