docs / 入门 / getting-started

快速开始

环境要求

依赖版本
Node.js22 或更高
pnpm10(仓库已通过 pnpm-workspace.yaml 固定存储参数)
数据库默认无需安装,使用 SQLite 文件;可选 PostgreSQL 14+ / MySQL 8.0.13+ / MariaDB 10.2+

安装

git clone https://github.com/guxingbiao0507/nuxtcms.git
cd nuxtcms
pnpm install
cp .env.example .env

.env 中至少设置:

NUXT_JWT_SECRET=<随机 32 位以上字符串>       # openssl rand -base64 32
NUXT_SESSION_PASSWORD=<随机 32 位以上字符串>
DATABASE_URL=file:.data/cms.sqlite

启动

pnpm dev

打开 http://localhost:3000,会跳转到默认语言首页 /zh。首次访问 /zh/setup 完成安装:

  1. 填写站点名称、描述、管理员账号。
  2. 勾选 导入演示内容(默认勾选)会写入一套中英双语的科技公司示例:3 个产品分类、6 个产品、2 个文章分类、6 篇文章和一个「关于我们」页面。
  3. 安装完成后自动登录并进入后台 /zh/admin。

开发环境启动时会自动执行数据库迁移;演示内容也可以随时用 pnpm seed:demo 写入空库。

目录结构

app/                 前台页面、布局、组件(站点项目通常覆盖这里)
  pages/admin/       后台页面
server/api/          接口:public(前台)、admin(后台)、auth、setup
server/database/     Drizzle schema、方言适配器、迁移、演示数据
server/utils/        认证、缓存、存储、SEO、邮件等工具
server/routes/       robots.txt、sitemap.xml、llms.txt
i18n/                语言配置与翻译文件
deploy/              PM2、nginx、Dockerfile、wrangler 样例
docs/                中英文文档

作为站点基座使用

站点项目把本仓库作为 Nuxt Layer 引用,然后只覆盖需要定制的文件:

// 站点的 nuxt.config.ts
export default defineNuxtConfig({
  extends: ['nuxtcms'],
})
// 站点的 package.json
{ "dependencies": { "nuxtcms": "github:guxingbiao0507/nuxtcms#v1.3.2" } }

建议锁定 tag,基座升级时再手动提升版本。

站点样式 main.css

基座注册的样式入口是 ~/assets/css/main.css,在站点里它解析为站点自己的 app/assets/css/main.css,所以站点的 main.css 要包含基座需要的内容。基座的后台页面位于 node_modules,Tailwind 默认不扫描,需要用 @source 指过去:

@import "tailwindcss";
@import "@nuxt/ui";
@source "../../../node_modules/nuxtcms/app";

@custom-variant dark (&:where(.dark, .dark *));

升级步骤

  1. 改 package.json 里的 tag,pnpm install。
  2. 看 更新日志 的 Upgrade 段,把新增的 SQLite 迁移(都可重复执行)应用到 D1:wrangler d1 migrations apply <db> --remote;自定义表前缀的站点直接执行替换前缀后的 SQL。
  3. pnpm build:cf 通过后提交、部署。

常用命令

命令说明
pnpm dev开发服务器
pnpm build:node / pnpm startNode 生产构建与启动
pnpm build:pages / pnpm deployCloudflare Pages 构建与发布
pnpm lint / pnpm typecheck代码检查
pnpm db:generate / db:migrate生成 / 执行迁移(:pg、:mysql 后缀对应其他数据库)
pnpm db:check-parity校验三套 schema 一致
pnpm db:smoke:pg用内嵌 PGlite 验证 PostgreSQL 方言
pnpm db:diff:sqlite对比 SQLite 库与 schema 快照的差异
pnpm seed:demo写入演示内容

下一步:配置说明 · 部署指南