create-dadao-app
v0.6.0
Published
Bootstrap a project from the dadaowl GitLab template and set up 'upstream' for future updates.
Readme
create-dadao-app
从 Git 模板快速创建新项目,并设置 upstream 远程仓库,方便后续拉取模板更新。
快速开始
交互式创建(推荐)
npm create dadao-app@latest my-new-app执行后会提示输入:
- 模板仓库 URL(必填)
- Origin 远程仓库 URL(可选,回车跳过)
使用命令行参数
npm create dadao-app@latest my-app \
--template https://gitlab.dadaowl.cn/group/template.git \
--origin https://gitlab.dadaowl.cn/your-group/my-app.git命令行选项
| 选项 | 说明 | 默认值 |
|------|------|--------|
| --template <url> | 模板 Git 仓库 URL(必填,未提供时会提示输入) | - |
| --origin <url> | Origin 远程仓库 URL(可选) | - |
| --branch <name> | 模板分支名称 | main |
| --no-push | 跳过首次推送到 origin | false |
| -y, --yes | 跳过所有交互式提示 | false |
| -h, --help | 显示帮助信息 | - |
示例
基础用法(交互式):
npm create dadao-app@latest my-shop指定模板和 origin:
npm create dadao-app@latest my-shop \
--template https://gitlab.dadaowl.cn/templates/shopify-framework.git \
--origin https://gitlab.dadaowl.cn/mygroup/my-shop.git仅克隆模板,稍后配置 origin:
npm create dadao-app@latest my-shop \
--template https://gitlab.dadaowl.cn/templates/shopify-framework.git使用特定分支并跳过推送:
npm create dadao-app@latest my-shop \
--template https://gitlab.dadaowl.cn/templates/shopify-framework.git \
--branch develop \
--no-push工作原理
- 克隆模板:将模板仓库克隆到新项目目录,并将远程命名为
upstream - 禁用 upstream 推送:设置 upstream 为只读,防止意外推送到模板仓库
- 配置 origin(可选):如果提供了 origin URL,会添加 origin 远程仓库
- 首次推送(可选):如果配置了 origin 且未使用
--no-push,会自动推送当前分支 - 启用 rerere:开启 Git rerere 功能,记住冲突解决方案
稍后配置 origin
如果创建时未配置 origin,可以稍后手动添加:
cd my-new-app
git remote add origin https://gitlab.dadaowl.cn/your-group/my-app.git
git push -u origin main同步模板更新
项目创建后,可以随时从 upstream 拉取模板更新:
# 拉取最新的模板代码
git fetch upstream
# 方式 A:合并(推荐,保留完整历史)
git merge upstream/main
# 方式 B:变基(线性历史,需要强制推送)
git rebase upstream/main便捷脚本
您可以在项目的 package.json 中添加以下脚本:
{
"scripts": {
"sync:upstream": "git fetch upstream && git merge upstream/main",
"sync:upstream:rebase": "git fetch upstream && git rebase upstream/main"
}
}然后使用:
npm run sync:upstream # 合并策略
npm run sync:upstream:rebase # 变基策略环境变量
可以通过环境变量预设默认值:
| 环境变量 | 说明 |
|----------|------|
| TEMPLATE_GIT | 默认模板 URL |
| ORIGIN_URL | 默认 origin URL |
| TEMPLATE_BRANCH | 默认分支名称 |
示例:
export TEMPLATE_GIT=https://gitlab.dadaowl.cn/templates/shopify-framework.git
npm create dadao-app@latest my-shop发布到 npm
如果您维护此工具,发布新版本:
npm login
npm version patch # 或 minor, major
npm publish --access public要求
- Node.js >= 18
- Git 已安装并配置
License
MIT
