【问题标题】:Cannot build Typescript app on Bitbucket Pipeline无法在 Bitbucket Pipeline 上构建 Typescript 应用程序
【发布时间】:2021-08-18 04:36:39
【问题描述】:

我在尝试让我的 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: 找不到命令

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

我们将不胜感激任何帮助。感谢您的支持

【问题讨论】:

  • 如果删除- node -v && npm -v && tsc -v 行,您的构建脚本是否仍然无法找到tsc?它是否会出现相同的错误消息?
  • @kdau 因内存不足而失败FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

标签: typescript yaml bitbucket-pipelines


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您有 tsc: command not found 错误,因为您在第一步安装了 typescript,而不是在您实际使用它的第二步。 Bitbucket 管道不会自动将环境传递到下一步。您可以:

    • 在第一步中提供artifact: node_modules 选项。在这种情况下,Bitbucket Pipelines 会将整个 node_modules 文件夹传递到下一步。
    • 只需在需要它的步骤中直接执行npm install,这样您就无需传递node_modules

    另一个提示:

    • 您应该对 CI 管道使用 npm ci,以防止意外的包更新。

    【讨论】:

      猜你喜欢
      • 2021-02-09
      • 2021-04-19
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多