如何为组织搭建私有GitHub Actions仓库及处理TypeScript动作编译问题
TypeScript编写的GitHub Actions复用问题解答
问题1:是否需要自行编译TypeScript代码,还是GitHub在使用这些动作时会自动完成编译?
- GitHub不会自动编译TypeScript代码。GitHub Actions的运行环境不会默认携带TypeScript编译器,若直接在
action.yml里指定.ts文件作为执行入口,运行时会直接报错。因此必须提前手动编译TypeScript为JavaScript,确保提交到仓库的代码包含可执行产物。
问题2:如果需要像正式发布那样进行编译,编译后的JS文件应该存放在哪里?
- 编译后的JS文件建议放在对应Action的子目录内,比如针对
action-1,可将编译产物放在action-1/dist/index.js(具体路径可根据编译配置调整)。然后在该Action的action.yml中,把runs.main字段指向这个编译后的JS文件,示例如下:runs: using: 'node16' # 或对应项目使用的Node.js版本 main: 'dist/index.js' - 编译完成后,需将
dist目录及产物一起提交到目标分支(比如main),这样当其他工作流通过org/actions-repo/action1@main引用时,GitHub能直接获取到可执行的代码。
额外实践建议:可以使用
@vercel/ncc工具将TypeScript代码及其依赖打包成单个JS文件,避免运行时依赖缺失的问题,简化部署流程。
内容的提问来源于stack exchange,提问作者Trevor Hewitt
相关产品推荐
相关产品推荐

