在Heroku上部署Deno项目
2021-04-19 约需阅读2分钟
端口
首先要解决的是端口的问题, Heroku 内部给的运行时是随机分配一个端口, 因此需要把我的 http 服务监听在 Heroku 给的端口。只需要在运行命令中加入指定端口就行了。
在根目录创建文件 Procfile 写运行命令, 部署上去后 Heroku 会自动读取内容并运行
web: deno run -A --unstable ./main.ts --port=${PORT}
我的 main.ts
import app from "./app.ts";
import { parse } from "https://deno.land/std/flags/mod.ts";
const { args } = Deno;
const DEFAULT_PORT = 3702;
const argPort = parse(args).port;
app.start({ port: argPort ? Number(argPort) : DEFAULT_PORT });
console.log(`http://localhost:${argPort ? Number(argPort) : DEFAULT_PORT}`);
部署
Buildpack
Heroku 没有直接支持 Deno, 所以无法下载依赖和部署环境, 好在可以自定义 Buildpacks 来支持 Deno
在 Heroku 的控制面板中的项目 settings -> Buildpacks 中添加 Deno 的 Buildpack
https://github.com/chibat/heroku-buildpack-deno.git
Deno 版本
在根目录中创建 runtime.txt, 可以指定运行的 Deno 版本, 例如
v1.8.3
不指定版本就是默认最新的正式版本了
* 邮箱仅用于回复提醒,不会被公开