create-lumal-admin 0.0.1-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +37 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/scaffold.d.ts +12 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +1577 -0
- package/dist/scaffold.js.map +1 -0
- package/package.json +35 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lumal contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# create-lumal-admin
|
|
2
|
+
|
|
3
|
+
`create-lumal-admin` 是 Lumal 的轻量后台基座脚手架,用于生成通过公开包入口消费 `@lumal/core`、`@lumal/icons` 和 `@lumal/icons-vue` 的 Vue 应用。
|
|
4
|
+
|
|
5
|
+
## 使用
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm create lumal-admin my-admin
|
|
9
|
+
pnpm create lumal-admin my-admin-http --api-mode http
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
`--api-mode local` 是默认模式,保留浏览器内请求示例;`--api-mode http` 会额外生成接口环境变量、标准请求客户端、登录刷新示例和 `API-CONTRACT.md`,但不会生成完整业务后端。
|
|
13
|
+
|
|
14
|
+
生成后执行:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cd my-admin
|
|
18
|
+
pnpm install
|
|
19
|
+
pnpm dev
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 生成内容
|
|
23
|
+
|
|
24
|
+
- Vue 3 + TypeScript + Vite。
|
|
25
|
+
- Element Plus 作为 UI 基础。
|
|
26
|
+
- `@lumal/core/theme-chalk/index.scss`、`@lumal/core/style.css` 和 SCSS 样式入口。
|
|
27
|
+
- `createLumalAdmin` 应用启动代码。
|
|
28
|
+
- `LumalLayout` 后台布局壳和 `LumalRouterView` 路由出口,采用路由驱动标签模式:固定首页页签、`routeTabResolver` 按导航动态追加页签、`tabStorageKey` 会话级持久化、标签刷新重载视图。
|
|
29
|
+
- 登录页、会话状态、权限菜单和路由守卫。
|
|
30
|
+
- 工作台、受保护业务占位页、403 与独立 404 页面。
|
|
31
|
+
- 主题切换、布局与标签偏好持久化、全局设置抽屉。
|
|
32
|
+
- `createRequestClient` 请求封装示例。
|
|
33
|
+
- Element Plus、Vue 和 Lumal 公共能力的明确 vendor 分包配置。
|
|
34
|
+
|
|
35
|
+
脚手架生成的项目只通过 `@lumal/core`、`@lumal/icons`、`@lumal/icons-vue` 等公开包入口消费能力,不依赖 monorepo 内部源码路径。
|
|
36
|
+
|
|
37
|
+
脚手架不会生成用户、角色、菜单、字典、配置等完整系统管理业务;这些应由具体项目按自身接口和权限模型实现。
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { basename, resolve } from 'node:path';
|
|
3
|
+
import process from 'node:process';
|
|
4
|
+
import { createLumalAdminProject } from './scaffold.js';
|
|
5
|
+
/***********************参数解析*********************/
|
|
6
|
+
function resolveApiMode(argv) {
|
|
7
|
+
const inline = argv.find(argument => argument.startsWith('--api-mode='))?.split('=')[1];
|
|
8
|
+
const optionIndex = argv.indexOf('--api-mode');
|
|
9
|
+
const value = inline ?? (optionIndex >= 0 ? argv[optionIndex + 1] : undefined) ?? 'local';
|
|
10
|
+
if (value !== 'http' && value !== 'local')
|
|
11
|
+
throw new Error('--api-mode 仅支持 local 或 http');
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
function resolveTargetDir(argv) {
|
|
15
|
+
const target = argv.slice(2).find(argument => !argument.startsWith('--') && argument !== 'http' && argument !== 'local');
|
|
16
|
+
return resolve(process.cwd(), target ?? 'lumal-admin');
|
|
17
|
+
}
|
|
18
|
+
/***********************命令执行*********************/
|
|
19
|
+
async function main() {
|
|
20
|
+
const targetDir = resolveTargetDir(process.argv);
|
|
21
|
+
const result = await createLumalAdminProject({
|
|
22
|
+
apiMode: resolveApiMode(process.argv),
|
|
23
|
+
name: basename(targetDir),
|
|
24
|
+
targetDir,
|
|
25
|
+
});
|
|
26
|
+
console.log(`已创建 Lumal Admin 项目:${result.targetDir}`);
|
|
27
|
+
console.log('下一步:');
|
|
28
|
+
console.log(` cd ${result.targetDir}`);
|
|
29
|
+
console.log(' pnpm install');
|
|
30
|
+
console.log(' pnpm dev');
|
|
31
|
+
}
|
|
32
|
+
main().catch((error) => {
|
|
33
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
34
|
+
console.error(`创建失败:${message}`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD,kDAAkD;AAClD,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,OAAO,CAAA;IACzF,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO;QACvC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAChD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAA;IACxH,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,IAAI,aAAa,CAAC,CAAA;AACxD,CAAC;AAED,kDAAkD;AAClD,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;QAC3C,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;QACzB,SAAS;KACV,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AAC3B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,OAAO,CAAC,KAAK,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GACxB,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,eAAe,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GACxB,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface CreateLumalAdminProjectOptions {
|
|
2
|
+
apiMode?: 'http' | 'local';
|
|
3
|
+
name: string;
|
|
4
|
+
targetDir: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CreateLumalAdminProjectResult {
|
|
7
|
+
targetDir: string;
|
|
8
|
+
createdFiles: string[];
|
|
9
|
+
}
|
|
10
|
+
/***********************公开 API*********************/
|
|
11
|
+
export declare function createLumalAdminProject(options: CreateLumalAdminProjectOptions): Promise<CreateLumalAdminProjectResult>;
|
|
12
|
+
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,8BAA8B;IAC7C,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAwkDD,oDAAoD;AACpD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,6BAA6B,CAAC,CAexC"}
|