typescript - 无法在 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:找不到命令
我花了很长时间谷歌搜索试图找到答案,但我没有运气解决这个问题。几个月前我尝试过,但失败了,今天我回过头来试一试,但仍然没有成功。
任何帮助都将受到应有的赞赏。谢谢您的支持
解决方案
根据您的问题和评论,这里有两个单独的问题:
- 顶级管道脚本找不到
tsc
,可能是因为安装包后它的环境没有更新typescript
。我建议只是- node -v && npm -v && tsc -v
永久地省略这条线(或至少它的&& tsc -v
一部分),因为无论如何,当你尝试时,任何丢失的人都会很快出现- npm run build
。 - 您的管道内存不足。
size: 2x
8GB 似乎是您现在可以请求的最大容量,因此您必须查看构建脚本以了解减少内存占用的方法。一些想法:- 您已经在安装步骤中要求使用最新版本的 TypeScript(这本身可能令人担忧;考虑未来的重大更改),但您使用的是 Node.js 10。我不知道 Node.js 14 是否会有占地面积小,但值得一试。
- 确保您的构建脚本本身没有并行运行任何东西。(
parallel
管道配置中的步骤不计算在内,因为它使用的是单独的 VM。) - 检查您的构建脚本调用的工具的选项,以获得可以打开的优化。
- 在最坏的情况下,您可能不得不以某种方式将项目的构建拆分为适合 Bitbucket 限制的部分。
推荐阅读
- javascript - 将数组的索引添加到另一个数组
- javascript - 如何以编程方式单击引导选项卡中的 href 链接?
- html - CSS:表格 - 带有 colspan 的行 - 悬停时更改整行颜色
- javascript - 无法弄清楚为什么在使用 JS 获取 JSON 时出现 TypeError
- javascript - Firebase 动态链接 REST API 返回 400 错误请求
- sas - proc sql 中的“WITH DATA UNIQUE PRIMARY INDEX”错误(来自 teradata)
- python - 由于 AssertionError:201 !=400 导致 Django 测试失败
- php - 我不明白为什么我在 PHP 中的 SQL 查询无法正常工作
- docker - Kubernetes 无法从公共 docker 镜像仓库拉取镜像
- python - 如何从 twilio 号码拨打电话到任何其他号码,这将有助于两个人互相交谈的服务