NuxtHub部署nuxt项目就是方便

大家好~我是Pub

最近一直在开发面向海外的应用,基本都是用Nuxt进行全栈开发的。从开发到部署都用了 Nuxthub,我自己用起来觉得非常方便。(我发现掘金好像还没有nuxthub的文章 )

前几天Nuxthub也更新到了0.10版本。

如果你是 Nuxt 开发者,在开发面向海外的应用,想开发全栈应用(带数据库、文件上传等),但又不想折腾复杂的后端部署、Docker 或云服务配置,NuxtHub 就是为你准备的。

1. NuxtHub 是什么?

NuxtHub 是一个 Nuxt 模块@nuxthub/core),也是一个部署和管理平台。

它的核心理念是 "Zero Configuration"(零配置) 。它将数据库 (SQL)文件存储 (Blob)键值存储 (KV)服务端缓存 等后端能力,直接集成到了 Nuxt 的运行时中。

简单来说,它让你在写 Nuxt 代码时,可以直接 import 一个数据库对象并开始查询,而无需关心底层的连接、认证或服务器维护。它底层主要利用了 Cloudflare 的边缘计算能力(Workers, D1, R2, KV),让你的应用不仅全栈,而且运行在全球边缘节点上。

2. 有什么方便的?

NuxtHub 最大的卖点就是 开发者体验 (DX) 的极致简化:

  • 开箱即用 :不需要安装 MySQL/PostgreSQL 软件,不需要配置 S3 存储桶。在本地开发时,NuxtHub 会自动在本地模拟这些服务(使用 SQLite 等技术),数据保存在项目根目录的 .data 文件夹中。
  • 像写前端一样写后端:你不需要学习复杂的后端框架。通过简单的导入语法即可操作数据库。
  • 零配置部署 :使用 npx nuxthub deploy 命令,系统会自动识别你的配置,在 Cloudflare 上为你创建对应的数据库、存储桶和 KV 空间,并发布应用。
  • 可视化管理 :直接在 Nuxt DevTools(开发工具栏)里就能看到数据库里的表、查看上传的文件、管理缓存,非常直观。

3. 有什么好处?

  1. 全栈一体化: 前端和后端逻辑在同一个项目中,共享类型(TypeScript),维护成本极低。
  2. 高性能 (Edge Computing): 你的应用不是运行在某个单一地区的服务器上,而是运行在 Cloudflare 的全球边缘网络上,用户访问速度极快。
  3. 功能丰富
    • NuxtHub Database (SQL): 基于 SQLite (Cloudflare D1),支持 Drizzle ORM,自动处理数据库迁移。
    • NuxtHub Blob: 轻松上传和存储图片、视频 (Cloudflare R2)。
    • NuxtHub KV: 高速键值对存储,适合存配置、Session 等。
    • NuxtHub Cache: 强大的服务端/API 缓存能力。
  4. 无厂商锁定风险: 虽然它目前深度集成 Cloudflare,但它是作为一个开源模块设计的,未来有潜力适配更多平台。而且本地开发完全离线可用。

4. 怎么用?

第一步:创建项目(最快上手)

直接使用官方模板初始化:

bash 复制代码
# 初始化一个 NuxtHub 项目
npx nuxi init -t hub my-hub-app
cd my-hub-app
npm install
npm run dev

第二步:在现有项目中使用

安装核心模块:

bash 复制代码
npx nuxi module add @nuxthub/core

修改 nuxt.config.ts 开启你需要的功能:

typescript 复制代码
export default defineNuxtConfig({
  modules: ['@nuxthub/core'],
  hub: {
    db: true,    // 开启 SQL 数据库
    blob: true,  // 开启文件存储
    kv: true,    // 开启键值对存储
    cache: true, // 开启缓存
  }
})

第三步:写代码(示例)

1. 数据库操作 (server/api/todos.ts)

typescript 复制代码
import { db } from 'hub:db'

export default eventHandler(async () => {
  // 直接查询数据库,拥有完整的类型提示
  const todos = await db.query.todos.findMany()
  return todos
})

2. 键值对存储 (KV)

typescript 复制代码
import { kv } from 'hub:kv'

// 存储数据
await kv.set('user:1:settings', { theme: 'dark' })
// 获取数据
const settings = await kv.get('user:1:settings')

3. 文件上传 (Blob)

typescript 复制代码
import { blob } from 'hub:blob'

export default eventHandler(async (event) => {
  // 获取上传的文件
  const form = await readFormData(event)
  const file = form.get('image') as File
  
  // 保存到 Blob 存储
  return await blob.put(file.name, file, {
    addRandomSuffix: true
  })
})

第四步:部署上线

无需去 Cloudflare 后台手动点点点,只需运行:

bash 复制代码
npx nuxthub deploy

它会自动登录、构建、并在云端配置好所有需要的数据库和存储资源。


总结 :NuxtHub 是目前 Nuxt 生态中开发全栈应用最现代、最轻量的方式,特别适合个人开发者、独立开发者。

最近写了个开源项目也是用nuxthub开发的。

如果这个项目对你有帮助:

  • Star 一下支持作者
  • 🐛 发现 Bug 欢迎提 Issue
  • 📢 分享给有需要的朋友
  • 💬 有问题可以评论区交流

🔗 GitHub: github.com/PBHAHAHA/Nu...

也可以加我微信交流:w314709923x

如果觉得有帮助,别忘了点赞 👍 收藏 ⭐ 关注 ➕ 三连哦~

相关推荐
小年糕是糕手6 小时前
【C++同步练习】模板初阶
服务器·开发语言·前端·javascript·数据库·c++·改行学it
_默_6 小时前
前端常用依赖归纳【vueuse\lodash-es\dayjs\bignumber】
大数据·前端·elasticsearch
Spirited_Away6 小时前
修改请求头插件迁移manifest V3记录
前端·chrome
cindershade6 小时前
使用 SSE 单向推送实现 系统通知功能
前端
Mapmost6 小时前
【高斯泼溅】Mapmost分区训练,让大场景3DGS建模从此高效且高质
前端
进击的野人6 小时前
Vue生命周期详解:从创建到销毁的全过程
前端·vue.js·面试
鹏北海6 小时前
微前端实现方式:HTML Entry 与 JS Entry 的区别
前端·javascript·面试
用户4099322502126 小时前
Vue3的`:style`对象语法:单位、属性名、响应式,这些细节你都踩过坑吗?
前端·ai编程·trae
Mintopia6 小时前
🎯 Rect 中鼠标移动拾取元素可行性架构分析
前端·react.js·架构