创建独立应用
按快速开始下载、校验并安装开发包后,my-app/ 已是独立应用,可以直接作为业务项目起点。当前安装版本为 0.13.0,无需再复制核心仓库中的 starter。
建立业务仓库
Section titled “建立业务仓库”- 修改
server/go.mod的module modu-app,同步修改应用自己的modu-app/...导入。 - 修改根目录与
web/package.json的应用名称,以及前端品牌配置。 - 在
server/.env配置自己的环境;数据库和存储归应用管理。 - 将应用目录建立为独立私有仓库,提交依赖声明、锁文件、生成的 catalog、
modu-sources.json和只引用凭据环境变量的web/.npmrc。
不提交真实 .env、token、node_modules、构建输出或数据库数据。独立应用不携带核心仓库的 go.work,也不使用指向核心源码的 replace 或前端 alias。
依赖与私有源
Section titled “依赖与私有源”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/;第三方依赖安装仍需要网络或缓存。
保留唯一装配入口
Section titled “保留唯一装配入口”后端通过 server/application/options.go 组装业务路由、菜单、迁移、种子和自有扩展。前端通过 web/config/routes.ts、web/src/app.tsx 与扩展 catalog 接入核心。
业务示例在独立插件仓库 igwen6w/modu-example-plugin(app.module/example),可按需接入或移除:不接入时 starter 只含核心能力;移除时删除它在 Options 中的注册及对应前端路由,再清理相关页面、services、类型和语言资源,随后重新生成 catalog。
验证独立消费
Section titled “验证独立消费”在应用根目录执行,server:go 包装脚本负责进入 server/ 并设置当前私有源的 Go 环境:
pnpm server:go mod tidypnpm server:go list -m github.com/igwen6w/modu/serverpnpm server:go run ./cmd/modu catalog generatepnpm server:go run ./cmd/modu checkpnpm --dir web extension:checkpnpm --dir web typecheckpnpm buildpnpm --dir web extension:verify-build需要重新下载私有依赖时,先按快速开始提供读取凭据。核对实际 module graph 与 npm 安装版本,提交配套依赖、锁文件和生成结果。已有应用后续使用升级核心包流程。
维护者从源码生成应用
Section titled “维护者从源码生成应用”以下入口为核心仓库维护者工具,用于当前 main 核心 checkout 中的模板验证,不是已发布开发包的安装步骤。目标目录必须不存在且位于核心仓库外;准备 Go 1.26.5、Node 24+ 与 pnpm 12.4.1。其中 create:example 仍为 Python 工具,需要 Python 3.9+。
随附产物的 example
Section titled “随附产物的 example”在核心仓库根目录执行:
pnpm create:example ../my-example# 或仅生成应用与产物,延后安装和构建pnpm create:example ../my-example-deferred --skip-build生成器构建核心、复制已跟踪的 starter 文件,以配套的唯一 example 快照版本生成私有 Go/npm 产物,默认安装并构建独立应用。它不启动数据库;延后构建时进入生成目录执行 pnpm install:example && pnpm build。
在线生成应用
Section titled “在线生成应用”先完成 GitHub 登录和 Git HTTPS 凭据助手配置。在当前核心仓库根目录执行 MODU_VERSION='0.13.0',再执行:
pnpm core:loginpnpm 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。
新模板的初始化和日常开发
Section titled “新模板的初始化和日常开发”用当前源码生成的新应用可在应用根目录执行:
pnpm app:setuppnpm dev:allapp:setup 首次准备 Compose、密钥、迁移与种子。dev:all 确保 Compose 就绪并在单终端运行前后端,Ctrl+C 停止两个服务及子进程;日常不会重跑迁移或种子。pnpm services:stop 停止数据库容器并保留数据。
这些简化入口已进入 0.13.0 开发包。更早开发包创建的应用仍使用 server:setup、server:dev、dev 分步操作;升级核心依赖不会自动添加模板工具。以应用自带 README 为准,完整范围见版本说明。