create-uniboot 使用指南
create-uniboot 是 Uniboot 前端项目脚手架,用于从内网 Nexus 拉取模板并创建业务项目。当前提供三类模板:
| 模板 | 适用场景 |
|---|---|
simple | 简单前端项目,保留基础布局、路由、请求、UI 组件接入 |
auth | 复杂中后台项目,含授统一认证授权服务中心(Auth Service)和管理后台服务(Admin Service)等能力 |
website | Nuxt 4 官网模板(SSR + Uniboot UI + Vite 8),适合官网、产品站、营销页等场景 |
环境要求
- Node.js:
>= 20.12.0 - pnpm:
>= 11.0.0 - 可访问内网 Nexus:
https://nexus.in.whatspos.cn
建议先确认 pnpm 版本:
pnpm -v配置内网私服
create-uniboot 发布在内网 Nexus。使用前建议在用户目录配置 ~/.npmrc:
registry=https://nexus.in.whatspos.cn/repository/pax-npm-group/
@uniboot:registry=https://nexus.in.whatspos.cn/repository/pax-npm-release/如果私服需要登录,执行:
npm login --registry=https://nexus.in.whatspos.cn/repository/pax-npm-release/也可以使用 token 方式配置到 ~/.npmrc:
//nexus.in.whatspos.cn/repository/pax-npm-release/:_authToken=你的token
always-auth=true不要把 token 提交到项目仓库。
验证包是否可访问
先确认当前 pnpm 使用的 registry:
pnpm config get registry如果输出仍是 https://registry.npmmirror.com/ 或公网 npm 地址,说明本机配置还没有切到内网 Nexus。
验证 create-uniboot 是否能从私服查询到:
pnpm view create-uniboot如果不想修改全局配置,也可以临时指定 registry:
NPM_CONFIG_REGISTRY=https://nexus.in.whatspos.cn/repository/pax-npm-group/ pnpm view create-uniboot注意
不要使用 pnpm create uniboot my-app --registry=... 或 pnpm --registry=... create uniboot my-app 来临时切换 registry。部分 pnpm 版本的 create 子命令不接受 --registry,会出现 Unknown option: 'registry',或者仍然从原 registry 拉包。
推荐方式:pnpm create
配置好 ~/.npmrc 后,直接执行:
pnpm create uniboot my-apppnpm create uniboot 会自动解析并下载 create-uniboot 包,然后进入交互式创建流程。
按提示选择模板:
simple - 简单前端项目
auth - 含授统一认证授权服务中心(Auth Service)和管理后台服务(Admin Service)
website - Nuxt 4 官网模板(SSR + Uniboot UI + Vite 8)也可以直接指定模板:
pnpm create uniboot my-app --template simple
pnpm create uniboot my-app --template auth
pnpm create uniboot my-app --template website创建完成后:
cd my-app
pnpm install
pnpm devsimple 与 auth 基于 Vite,默认开发端口为 3002(可通过 VITE_PORT 配置)。
website 基于 Nuxt 4,默认开发端口为 3000。首次启动前建议复制环境变量并初始化数据库:
cp .env.example .env
# 编辑 .env,至少设置 BETTER_AUTH_SECRET(至少 32 位随机字符串)
pnpm db:push
pnpm db:seed
pnpm devwebsite 模板内置官网首页、联系表单、登录页与后台管理示例,认证基于 better-auth,数据层使用 Drizzle + SQLite。联系表单邮件通知需配置 .env 中的 SMTP 相关变量,未配置时仅保存留言。
临时指定 registry
如果不方便修改 ~/.npmrc,可以用环境变量只影响当前命令:
NPM_CONFIG_REGISTRY=https://nexus.in.whatspos.cn/repository/pax-npm-group/ pnpm create uniboot my-app指定模板:
NPM_CONFIG_REGISTRY=https://nexus.in.whatspos.cn/repository/pax-npm-group/ pnpm create uniboot my-app --template auth
NPM_CONFIG_REGISTRY=https://nexus.in.whatspos.cn/repository/pax-npm-group/ pnpm create uniboot my-app --template website使用 pnpm dlx
pnpm dlx 会临时下载并执行 create-uniboot,适合不想全局安装 CLI 的场景:
pnpm dlx create-uniboot my-app临时指定 registry:
NPM_CONFIG_REGISTRY=https://nexus.in.whatspos.cn/repository/pax-npm-group/ pnpm dlx create-uniboot my-app全局安装后使用
如果经常创建项目,可以全局安装:
pnpm add -g create-uniboot然后执行:
create-uniboot my-app
create-uniboot my-app --template simple
create-uniboot my-app --template auth
create-uniboot my-app --template website检查命令是否可用:
create-uniboot --help如果提示找不到命令,通常是 pnpm 全局 bin 目录未加入 PATH,可先执行:
pnpm setup常见问题
仍然从 npmmirror 或公网 npm 拉包
检查:
pnpm config get registry
cat ~/.npmrc确保 registry 指向:
https://nexus.in.whatspos.cn/repository/pax-npm-group/查询 create-uniboot 返回 404
可能原因:
create-uniboot尚未发布到 Nexus- 当前账号没有权限访问私服
pax-npm-group没有包含发布用的pax-npm-release- 本机 registry 仍指向其他源
可以分别检查 group 与 release:
NPM_CONFIG_REGISTRY=https://nexus.in.whatspos.cn/repository/pax-npm-group/ pnpm view create-uniboot
NPM_CONFIG_REGISTRY=https://nexus.in.whatspos.cn/repository/pax-npm-release/ pnpm view create-uniboot目标目录非空
CLI 会拒绝写入非空目录。请换一个目录名,或先清空目标目录后再执行。