Heroku
将 Nitro 应用部署到 Heroku。
预设: heroku
使用 Heroku CLI
创建一个新的 Heroku 应用。heroku create myapp
heroku create myapp
配置 Heroku 使用 nodejs 构建包。heroku buildpacks:set heroku/nodejs
heroku buildpacks:set heroku/nodejs
配置你的应用。heroku config:set NITRO_PRESET=heroku
heroku config:set NITRO_PRESET=heroku
确保在 package.json 文件中有 start 和 build 命令。"scripts": {
"build": "nitro build", // 如果使用 nuxt 则为 `nuxt build`
"start": "node .output/server/index.mjs"
}
"scripts": {
"build": "nitro build", // 如果使用 nuxt 则为 `nuxt build`
"start": "node .output/server/index.mjs"
}
使用 Nginx
在此处添加 Heroku Nginx 构建包 here
在 nitro.config 中更改为 'node' 预设"nitro": {
"preset":"node",
}
"nitro": {
"preset":"node",
}
根据构建包文档的 Existing app 部分,需要两个关键步骤来启动运行
步骤 1:在 'tmp/nginx.socket' 监听套接字
步骤 2:当你的应用准备好接受连接时,创建文件 '/tmp/app-initialized'
创建自定义应用运行器,例如:在项目根目录(或其他首选位置)创建 apprunner.mjs,在这个文件中,使用 node 预设生成的监听器创建服务器,然后按照构建包文档的说明监听套接字import { createServer } from 'node:http'
import { listener } from './.output/server/index.mjs'
const server = createServer(listener)
server.listen('/tmp/nginx.socket') //遵循构建包文档
import { createServer } from 'node:http'
import { listener } from './.output/server/index.mjs'
const server = createServer(listener)
server.listen('/tmp/nginx.socket') //遵循构建包文档
要创建 'tmp/app-initialized' 文件,请使用 nitro 插件,在项目根目录(或其他首选位置)创建文件 'initServer.ts'import fs from "fs"
export default definePlugin((nitroApp) => {
if((process.env.NODE_ENV || 'development') != 'development') {
fs.openSync('/tmp/app-initialized', 'w')
}
})
import fs from "fs"
export default definePlugin((nitroApp) => {
if((process.env.NODE_ENV || 'development') != 'development') {
fs.openSync('/tmp/app-initialized', 'w')
}
})