一、概述
@oinone/cli(命令:oinone-frontend)是 Oinone 前端工程脚手架,用于快速生成基于 pnpm workspace 的 Oinone 前端工程。当前 CLI 版本:7.2.7,支持的 Oinone 框架版本:7.2.x(最新 7.2.9)/ 6.4.x(最新 6.4.12)。
功能特性:
- 交互式创建工程,内置默认值与合理校验
- 支持参数静默创建(适用于 CI/CD)
- 企业版可选生成仓库凭证文件
- 提供
cache静态资源缓存管理 - 提供
doctor环境检查
二、环境要求
| 阶段 | 要求 |
|---|---|
| 运行 CLI | Node.js |
| 安装生成的前端工程依赖 | 建议使用 pnpm |
注意
如果尚未安装 pnpm 及配套工具,可通过以下命令安装(推荐锁定版本,避免高版本带来的不确定性):
npm install -g pnpm@^9 lerna@9.0.3 rimraf@6.1.2提示
在开始创建工程之前,请先完成附录2:前端环境配置中的全局配置(Node.js v22.13.0、pnpm@^9 等),避免后续安装依赖或启动项目时出现无法预知的异常。
三、安装
npm install -g @oinone/cli验证安装:
oinone-frontend --version也可以使用 npx 直接运行,无需全局安装:
npx @oinone/cli create my-project四、创建项目
(一)交互式创建
直接运行 create 命令并跟随提示输入:
oinone-frontend create(二)静默式创建(推荐用于 CI/CD)
通过参数一次性传入所有配置,无需交互:
社区版:
oinone-frontend create my-project \
--oinone-version 7.2.0 \
--edition community2
3
企业版:
oinone-frontend create my-project-enterprise \
--oinone-version 7.2.0 \
--edition enterprise2
3
(三)使用 --company-name / --project-name 创建
oinone-frontend create \
--company-name ss \
--project-name oms \
--oinone-version 7.2.0 \
--edition community2
3
4
5
注意
当同时使用 --company-name 和 --project-name 时,生成的工程目录名为 {company}-{project}-frontend(如上例为 ss-oms-frontend)。
(四)静态资源下载
--download-static-resource 参数控制是否下载静态资源(如图标、图片等站点资源):
oinone-frontend create my-project \
--oinone-version 7.2.0 \
--edition community \
--download-static-resource true2
3
4
(五)演练模式(不落盘)
添加 --dry-run 参数可在不写入磁盘的情况下预检参数:
oinone-frontend create my-project \
--oinone-version 7.2.0 \
--edition community \
--dry-run2
3
4
(六)创建 Oinone 6.4.* 工程
oinone-frontend create my-project-64 \
--oinone-version 6.4.0 \
--edition community2
3
五、包命名与工程结构
生成的前端工程为 pnpm workspace 管理的 monorepo 结构。模板中的包会根据 CLI 参数进行重命名:
| 模板包名 | 生成后包名 |
|---|---|
ss-boot | {company}-boot |
ss-oinone | {company}-oinone |
ss-admin-widget | {company}-admin-widget |
ss-project | {company}-project |
注意
不仅包目录名会被替换,源代码中的 ss- 前缀和 @ss/ 作用域也会同步替换(如 @ss/ → @{company}/)。
生成工程目录结构:
my-project/
├── pnpm-workspace.yaml # pnpm workspace 配置
├── package.json # 根 package.json
├── lerna.json # Lerna 配置
├── .npmrc # npm 镜像配置
├── eslint.config.ts # ESLint 配置
└── packages/
├── ss-boot/ # 组装层(应用入口,Vue + Vite)
│ └── src/
│ └── main.ts # 应用入口文件
├── ss-oinone/ # Oinone 集成层
├── ss-admin-widget/ # 无代码平台组件
└── ss-project/ # 业务定制层2
3
4
5
6
7
8
9
10
11
12
13
注意
以上为通过 oinone-frontend create my-project 生成的工程结构。若通过交互模式或 --company-name / --project-name 参数创建,工程目录名为 {company}-{project}-frontend(例如 ss-oms-frontend)。
六、启动项目
生成工程后,依次执行以下命令安装依赖并启动开发服务器:
cd my-project
pnpm install
pnpm run dev2
3
提示
- 在浏览器中打开终端输出的访问地址即可查看应用。
- 国内网络环境下,项目内置的
.npmrc已配置 npmmirror 镜像以加速依赖安装。
七、命令参考
(一)全局参数
| 参数 | 说明 |
|---|---|
-l, --lang <lang> | 语言(zh-CN / en-US) |
-v, --version | 输出版本号 |
-h, --help | 输出帮助 |
(二)oinone-frontend create [projectName]
| 参数 | 说明 |
|---|---|
--company-name <name> | 静默模式:公司/组织简称 |
--project-name <name> | 静默模式:项目名;与 --company-name 同用时目录名为 {company}-{project}-frontend |
--download-static-resource <boolean> | 是否下载静态资源(true / false) |
-o, --oinone-version <version> | Oinone 版本(7.2.0 / 6.4.0,仅支持次版本号) |
-e, --edition <edition> | 版本类型:community / enterprise |
-f, --force | 目标目录存在时覆盖/合并 |
-d, --dry-run | 演练模式:不落盘 |
(三)oinone-frontend doctor
| 参数 | 说明 |
|---|---|
-o, --oinone-version <version> | 用于校验的 Oinone 版本(仅支持 6.4.* 与 7.2+) |
oinone-frontend doctor --oinone-version 7.2.0(四)oinone-frontend cache
| 命令 | 说明 |
|---|---|
cache info | 打印缓存目录信息(含已缓存文件及大小) |
cache clean | 清理缓存的静态资源 |
# 查看缓存信息
oinone-frontend cache info
# 清理静态资源缓存
oinone-frontend cache clean2
3
4
5
提示
卸载 CLI 不会自动清理系统临时目录中的静态资源缓存。如需清理,请在卸载前执行 oinone-frontend cache clean。
八、版本与模板映射
| Oinone 版本 | 模板目录 | 说明 |
|---|---|---|
6.4.* | template-6.4.0 | Oinone 6.4 前端工程 |
7.2+ | template-7.2.0 | Oinone 7.2 前端工程 |
版本发布日志:
警告
不支持的 Oinone 版本会直接报错,不会生成工程。
九、源码依赖(本地联调)
当需要对 Oinone 前端框架(oinone-kunlun)源码进行调试或二次开发时,可以通过以下方式将生成的业务工程与框架源码关联,实现本地联调。
(一)原理
pnpm workspace 会将 packages/* 下的本地包通过符号链接映射到 node_modules。因此,将 oinone-kunlun 源码放入 packages/ 目录并注册其子包为 workspace 成员后,@oinone/kunlun-* 依赖即会解析到本地源码,对源码的修改即时生效。
(二)操作步骤
1、克隆 oinone-kunlun 框架源码
在生成工程的 packages/ 目录下克隆框架源码,并切换到对应分支:
cd my-project/packages
git clone https://gitee.com/oinone/oinone-kunlun.git
cd oinone-kunlun
git checkout feat/7.2.0 # 7.2 模板对应此分支;6.4 模板请选择对应版本分支2
3
4
2、修改 pnpm-workspace.yaml
编辑工程根目录的 pnpm-workspace.yaml,将 oinone-kunlun 的所有子包加入工作区:
packages:
- 'packages/**'2
3、检查 .npmrc 配置
确保工程根目录的 .npmrc 中已配置以下参数,这是 pnpm 使用本地 workspace 依赖的关键:
link-workspace-packages=true
prefer-workspace-packages=true2
4、安装依赖
回到工程根目录,重新安装依赖以建立本地链接:
cd ../..
pnpm install2
5、处理 CSS 产物缺失
oinone-kunlun 的 dependencies.ts 文件中引用了构建后才生成的 CSS 文件,在本地联调时这些文件尚不存在,会导致启动报错。直接注释掉对应的 CSS 导入语句即可:
需注释的文件一:packages/oinone-kunlun/packages/kunlun-vue/packages/dependencies/src/dependencies.ts
// 本地开发时这些 CSS 产物尚未构建,先注释掉:
// import '@oinone/kunlun-vue-ui-common/dist/oinone-kunlun-vue-ui-common.css';
// import '@oinone/kunlun-vue-ui/dist/oinone-kunlun-vue-ui.css';
// import '@oinone/kunlun-vue-admin-layout/dist/oinone-kunlun-vue-admin-layout.css';
// import '@oinone/kunlun-vue-admin-base/dist/oinone-kunlun-vue-admin-base.css';
// import '@oinone/kunlun-vue-expression/dist/oinone-kunlun-vue-expression.css';2
3
4
5
6
需注释的文件二:packages/oinone-kunlun/packages/kunlun-mobile-vue/packages/mobile-dependencies/src/dependencies.ts
// 本地开发时这些 CSS 产物尚未构建,先注释掉:
// import '@oinone/kunlun-vue-ui-common/dist/oinone-kunlun-vue-ui-common.css';
// import '@oinone/kunlun-vue-mobile-base/dist/oinone-kunlun-vue-mobile-base.css';2
3
提示
- 若后续需要还原 CSS 导入,可通过
git checkout -- <file>恢复文件。
6、启动开发服务器
回到工程根目录启动:
pnpm run dev此时对 packages/oinone-kunlun/ 下任意源码的修改都会即时生效,可在浏览器中直接验证。
提示
- 修改源码后如需还原,可用
git checkout -- <file>恢复。 - 若修改了 workspace 配置或新增/删除了依赖包,需重新执行
pnpm install以更新链接。 - 本地构建
oinone-kunlun不仅耗时较长,且可能因环境差异产生不稳定因素。源码依赖仅推荐用于断点调试,项目构建请使用远程已构建好的@oinone/kunlun-*依赖包。