无法在 Bitbucket 管道上构建 Typescript 应用程序
Cannot build Typescript app on Bitbucket Pipeline
我在尝试让我的 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: command not found
我花了很长时间谷歌搜索试图找到答案,但我没有运气解决这个问题。几个月前尝试克服失败,今天又绕回来试一试,还是没有成功。
非常感谢任何帮助。感谢您的支持
根据您的问题和评论,这里有两个不同的问题:
- 顶级管道脚本找不到
tsc
,可能是因为安装 typescript
软件包后未更新其环境。我建议永久删除 - node -v && npm -v && tsc -v
行(或至少删除它的 && tsc -v
部分),因为无论如何,当您尝试 - npm run build
时,任何丢失的内容都会很快出现。
- 您的管道 运行 内存不足。
size: 2x
8GB 似乎是您现在可以请求的最大容量,因此您必须查看构建脚本以寻找减少内存占用的方法。一些想法:
- 您已经在安装步骤中要求使用最新版本的 TypeScript(这本身可能令人担忧;考虑未来的重大更改),但您使用的是 Node.js10。我不知道if Node.js 14 的占用空间较小,但值得一试。
- 确保您的构建脚本本身 运行 没有任何并行的东西。 (管道配置中的
parallel
步骤不算数,因为它使用的是单独的 VM。)
- 检查您的构建脚本调用的工具的选项,以了解您可以打开的优化。
- 在最坏的情况下,您可能不得不以某种方式将项目的构建拆分成适合 Bitbucket 限制的部分。
你有 tsc: command not found
错误,因为你在第一步安装了 typescript,而不是你实际使用它的第二步。 Bitbucket 管道不会自动将环境传递到下一步。您可以:
- 第一步提供
artifact: node_modules
选项。在这种情况下,Bitbucket Pipelines 会将整个 node_modules
文件夹传递到下一步。
- 只需在需要它的步骤中直接执行
npm install
,这样您就不需要绕过 node_modules
。
另一个提示:
- 您应该将
npm ci
用于 CI 管道,以防止意外的包更新。
我在尝试让我的 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: command not found
我花了很长时间谷歌搜索试图找到答案,但我没有运气解决这个问题。几个月前尝试克服失败,今天又绕回来试一试,还是没有成功。
非常感谢任何帮助。感谢您的支持
根据您的问题和评论,这里有两个不同的问题:
- 顶级管道脚本找不到
tsc
,可能是因为安装typescript
软件包后未更新其环境。我建议永久删除- node -v && npm -v && tsc -v
行(或至少删除它的&& tsc -v
部分),因为无论如何,当您尝试- npm run build
时,任何丢失的内容都会很快出现。 - 您的管道 运行 内存不足。
size: 2x
8GB 似乎是您现在可以请求的最大容量,因此您必须查看构建脚本以寻找减少内存占用的方法。一些想法:- 您已经在安装步骤中要求使用最新版本的 TypeScript(这本身可能令人担忧;考虑未来的重大更改),但您使用的是 Node.js10。我不知道if Node.js 14 的占用空间较小,但值得一试。
- 确保您的构建脚本本身 运行 没有任何并行的东西。 (管道配置中的
parallel
步骤不算数,因为它使用的是单独的 VM。) - 检查您的构建脚本调用的工具的选项,以了解您可以打开的优化。
- 在最坏的情况下,您可能不得不以某种方式将项目的构建拆分成适合 Bitbucket 限制的部分。
你有 tsc: command not found
错误,因为你在第一步安装了 typescript,而不是你实际使用它的第二步。 Bitbucket 管道不会自动将环境传递到下一步。您可以:
- 第一步提供
artifact: node_modules
选项。在这种情况下,Bitbucket Pipelines 会将整个node_modules
文件夹传递到下一步。 - 只需在需要它的步骤中直接执行
npm install
,这样您就不需要绕过node_modules
。
另一个提示:
- 您应该将
npm ci
用于 CI 管道,以防止意外的包更新。