create-gh-web
v0.1.7
Published
## 项目介绍 用于快速创建接入 SSO 的 Vue3 Web 项目,内置常用依赖与配置:Vue Router、Pinia、Element Plus、Axios、TailwindCSS、AG Grid 等。
Readme
create-gh-web
项目介绍
用于快速创建接入 SSO 的 Vue3 Web 项目,内置常用依赖与配置:Vue Router、Pinia、Element Plus、Axios、TailwindCSS、AG Grid 等。
快速开始
- 公网(默认 registry):
npx create-gh-web my-app - 指定公司私服 registry:
npx --registry=<私服地址> create-gh-web my-app - 本地直接运行入口:
node bin/create-gh-web.mjs <目标目录> --name <项目名> --pm <pnpm|npm|yarn> --install
CLI 参数
- 位置参数
<目标目录>:生成到的目录;未提供时默认为当前目录 --name <项目名>:目标项目包名;未提供时交互式提示,默认用目标目录名--pm <pnpm|npm|yarn>:选择包管理器;默认pnpm--install:生成后自动安装依赖--registry <url>:安装依赖时使用的 npm registry(与登录/发布 registry 无关)
工作流程
- 解析参数,准备目标目录并推断项目名
- 从仓库根复制模板文件(白名单)到目标目录
- 初始化目标
package.json:- 重写
name、private=true、version=0.0.0 - 删除不需要的
bin、files
- 重写
- 按需安装依赖(支持
pnpm/npm/yarn与--registry)
复制规则与忽略项:
- 顶层仅复制白名单:
src、public、index.html、package.json、vite.config.js、postcss.config.js、tailwind.config.js、README.md、.env* - 遍历复制时自动忽略:
node_modules、.git、bin、构建产物目录、目标目录自身(避免递归复制)
发布到公司私服
package.json建议设置:name: create-gh-webversion: 语义化版本(如 0.1.0)private: falsebin: { "create-gh-web": "bin/create-gh-web.mjs" }files: ["bin"](如引入template目录,再将其加入)
.npmrc(项目或用户级)与登录:registry=<私服地址>npm login --registry=<私服地址>
- 发布命令:
pnpm publish --registry=<私服地址>- 若使用作用域包名(
@your-scope/create-gh-web),请确保作用域指向私服 registry
常见问题
- 403 或鉴权失败:检查
.npmrc的registry与_authToken - 模板缺失:若后续引入
template目录,记得将其加入package.json files - 安装脚本受限:执行
pnpm approve-builds允许相关脚本运行 - 私服依赖缺失:安装时可临时切换到公网 npm registry
