TypeScript项目部署Node12/14版App Engine失败,Node10可正常部署
从 Node.js 12 版本 runtime 开始,Google App Engine 标准环境的默认构建逻辑发生变更:运行gcp-build脚本前,默认仅安装package.json中dependencies下的生产依赖,不再自动安装devDependencies下的开发依赖,这是你触发tsc: not found报错的根本原因。
可选择以下任意一种方案解决:
- 调整
gcp-build脚本,执行编译前手动安装开发依赖
将package.json中对应的脚本修改为:
该方案无需改动依赖分类,GAE在构建完成后会自动清理开发依赖,不会增加生产环境的包体积。"gcp-build": "npm install --only=dev && tsc -p ." - 将构建必需的依赖迁移到生产依赖
直接把typescript、tslint等构建阶段需要用到的包从devDependencies移动到dependencies中即可,该方案改动最小,仅会小幅增加生产环境的部署包体积,对服务运行无其他影响。 - 本地预编译后部署
在本地提前执行tsc命令完成TypeScript编译,直接将编译后的JS代码部署到GAE,同时删除package.json中的gcp-build脚本。该方案可以大幅缩短云端部署的耗时,是最推荐的处理方式。
内容的提问来源于stack exchange,提问作者user4704976
相关产品推荐
相关产品推荐

