跳转到内容

创建独立应用

按快速开始下载、校验并安装开发包后,my-app/ 已是独立应用,可以直接作为业务项目起点。当前安装版本为 0.13.0,无需再复制核心仓库中的 starter。

  1. 修改 server/go.mod 的 module modu-app,同步修改应用自己的 modu-app/... 导入。
  2. 修改根目录与 web/package.json 的应用名称,以及前端品牌配置。
  3. 在 server/.env 配置自己的环境;数据库和存储归应用管理。
  4. 将应用目录建立为独立私有仓库,提交依赖声明、锁文件、生成的 catalog、modu-sources.json 和只引用凭据环境变量的 web/.npmrc。

不提交真实 .env、token、node_modules、构建输出或数据库数据。独立应用不携带核心仓库的 go.work,也不使用指向核心源码的 replace 或前端 alias。

Go module 为 github.com/igwen6w/modu/server,配套版本为 v0.13.0;私有 Git tag 使用 server/v0.13.0。完整下载交付使用 v0.13.0 标签,两者用途不同。

GitHub Packages 发布名为 @igwen6w/modu-web。在线安装工具把应用依赖 @modu/web 设为精确 alias npm:@igwen6w/modu-web@0.13.0,业务 import 保持 @modu/web。modu-sources.json 记录 registry、Go 来源和凭据环境变量名称,不存储 token。

当前开发包随附 packages/,在线安装成功后不再使用其中的核心产物。仍按包内 README 使用随附产物的应用,可整体保存应用与 packages/;第三方依赖安装仍需要网络或缓存。

后端通过 server/application/options.go 组装业务路由、菜单、迁移、种子和自有扩展。前端通过 web/config/routes.ts、web/src/app.tsx 与扩展 catalog 接入核心。

业务示例在独立插件仓库 igwen6w/modu-example-plugin(app.module/example),可按需接入或移除:不接入时 starter 只含核心能力;移除时删除它在 Options 中的注册及对应前端路由,再清理相关页面、services、类型和语言资源,随后重新生成 catalog。

在应用根目录执行,server:go 包装脚本负责进入 server/ 并设置当前私有源的 Go 环境:

终端窗口
pnpm server:go mod tidy
pnpm server:go list -m github.com/igwen6w/modu/server
pnpm server:go run ./cmd/modu catalog generate
pnpm server:go run ./cmd/modu check
pnpm --dir web extension:check
pnpm --dir web typecheck
pnpm build
pnpm --dir web extension:verify-build

需要重新下载私有依赖时,先按快速开始提供读取凭据。核对实际 module graph 与 npm 安装版本,提交配套依赖、锁文件和生成结果。已有应用后续使用升级核心包流程。

以下入口为核心仓库维护者工具,用于当前 main 核心 checkout 中的模板验证,不是已发布开发包的安装步骤。目标目录必须不存在且位于核心仓库外;准备 Go 1.26.5、Node 24+ 与 pnpm 12.4.1。其中 create:example 仍为 Python 工具,需要 Python 3.9+。

在核心仓库根目录执行:

终端窗口
pnpm create:example ../my-example
# 或仅生成应用与产物,延后安装和构建
pnpm create:example ../my-example-deferred --skip-build

生成器构建核心、复制已跟踪的 starter 文件,以配套的唯一 example 快照版本生成私有 Go/npm 产物,默认安装并构建独立应用。它不启动数据库;延后构建时进入生成目录执行 pnpm install:example && pnpm build。

先完成 GitHub 登录和 Git HTTPS 凭据助手配置。在当前核心仓库根目录执行 MODU_VERSION='0.13.0',再执行:

终端窗口
pnpm core:login
pnpm create:online ../my-app --version "$MODU_VERSION"

默认使用 GitHub Packages 的 @igwen6w/modu-web 与 Go direct。core:login 隐藏输入 Classic PAT,按 registry 地址将凭据存到用户目录 ~/.config/modu/credentials/,权限为 600;它不配置 Git 认证或授予包权限。安装和升级优先读取 MODU_NPM_TOKEN,CI 继续使用环境变量。

在线生成器只复制应用骨架和工具,再下载已发布核心;可用 --skip-install 延后安装,之后在应用根目录执行 pnpm core:install。

用当前源码生成的新应用可在应用根目录执行:

终端窗口
pnpm app:setup
pnpm dev:all

app:setup 首次准备 Compose、密钥、迁移与种子。dev:all 确保 Compose 就绪并在单终端运行前后端,Ctrl+C 停止两个服务及子进程;日常不会重跑迁移或种子。pnpm services:stop 停止数据库容器并保留数据。

这些简化入口已进入 0.13.0 开发包。更早开发包创建的应用仍使用 server:setup、server:dev、dev 分步操作;升级核心依赖不会自动添加模板工具。以应用自带 README 为准,完整范围见版本说明。