@moluoxixi/create-app 2.0.1

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.
Files changed (215) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.md +129 -0
  3. package/dist/commands/create.d.ts +10 -0
  4. package/dist/commands/create.d.ts.map +1 -0
  5. package/dist/commands/create.js +89 -0
  6. package/dist/commands/create.js.map +1 -0
  7. package/dist/commands/index.d.ts +5 -0
  8. package/dist/commands/index.d.ts.map +1 -0
  9. package/dist/commands/index.js +5 -0
  10. package/dist/commands/index.js.map +1 -0
  11. package/dist/generators/index.d.ts +7 -0
  12. package/dist/generators/index.d.ts.map +1 -0
  13. package/dist/generators/index.js +7 -0
  14. package/dist/generators/index.js.map +1 -0
  15. package/dist/generators/project.d.ts +11 -0
  16. package/dist/generators/project.d.ts.map +1 -0
  17. package/dist/generators/project.js +26 -0
  18. package/dist/generators/project.js.map +1 -0
  19. package/dist/generators/react.d.ts +10 -0
  20. package/dist/generators/react.d.ts.map +1 -0
  21. package/dist/generators/react.js +39 -0
  22. package/dist/generators/react.js.map +1 -0
  23. package/dist/generators/vue.d.ts +10 -0
  24. package/dist/generators/vue.d.ts.map +1 -0
  25. package/dist/generators/vue.js +40 -0
  26. package/dist/generators/vue.js.map +1 -0
  27. package/dist/index.d.ts +7 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +26 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/test.d.ts +6 -0
  32. package/dist/test.d.ts.map +1 -0
  33. package/dist/test.js +364 -0
  34. package/dist/test.js.map +1 -0
  35. package/dist/types/ejs.d.ts +11 -0
  36. package/dist/types/ejs.d.ts.map +1 -0
  37. package/dist/types/ejs.js +5 -0
  38. package/dist/types/ejs.js.map +1 -0
  39. package/dist/types/features.d.ts +26 -0
  40. package/dist/types/features.d.ts.map +1 -0
  41. package/dist/types/features.js +41 -0
  42. package/dist/types/features.js.map +1 -0
  43. package/dist/types/index.d.ts +59 -0
  44. package/dist/types/index.d.ts.map +1 -0
  45. package/dist/types/index.js +8 -0
  46. package/dist/types/index.js.map +1 -0
  47. package/dist/types/viteConfig.d.ts +17 -0
  48. package/dist/types/viteConfig.d.ts.map +1 -0
  49. package/dist/types/viteConfig.js +6 -0
  50. package/dist/types/viteConfig.js.map +1 -0
  51. package/dist/utils/deepMerge.d.ts +8 -0
  52. package/dist/utils/deepMerge.d.ts.map +1 -0
  53. package/dist/utils/deepMerge.js +33 -0
  54. package/dist/utils/deepMerge.js.map +1 -0
  55. package/dist/utils/ejs.d.ts +19 -0
  56. package/dist/utils/ejs.d.ts.map +1 -0
  57. package/dist/utils/ejs.js +30 -0
  58. package/dist/utils/ejs.js.map +1 -0
  59. package/dist/utils/file.d.ts +70 -0
  60. package/dist/utils/file.d.ts.map +1 -0
  61. package/dist/utils/file.js +119 -0
  62. package/dist/utils/file.js.map +1 -0
  63. package/dist/utils/index.d.ts +12 -0
  64. package/dist/utils/index.d.ts.map +1 -0
  65. package/dist/utils/index.js +12 -0
  66. package/dist/utils/index.js.map +1 -0
  67. package/dist/utils/install.d.ts +17 -0
  68. package/dist/utils/install.d.ts.map +1 -0
  69. package/dist/utils/install.js +37 -0
  70. package/dist/utils/install.js.map +1 -0
  71. package/dist/utils/prompts.d.ts +16 -0
  72. package/dist/utils/prompts.d.ts.map +1 -0
  73. package/dist/utils/prompts.js +180 -0
  74. package/dist/utils/prompts.js.map +1 -0
  75. package/dist/utils/renderFeatures.d.ts +18 -0
  76. package/dist/utils/renderFeatures.d.ts.map +1 -0
  77. package/dist/utils/renderFeatures.js +72 -0
  78. package/dist/utils/renderFeatures.js.map +1 -0
  79. package/dist/utils/renderTemplate.d.ts +6 -0
  80. package/dist/utils/renderTemplate.d.ts.map +1 -0
  81. package/dist/utils/renderTemplate.js +102 -0
  82. package/dist/utils/renderTemplate.js.map +1 -0
  83. package/dist/utils/sortDependencies.d.ts +6 -0
  84. package/dist/utils/sortDependencies.d.ts.map +1 -0
  85. package/dist/utils/sortDependencies.js +22 -0
  86. package/dist/utils/sortDependencies.js.map +1 -0
  87. package/dist/utils/viteConfigRender.d.ts +19 -0
  88. package/dist/utils/viteConfigRender.d.ts.map +1 -0
  89. package/dist/utils/viteConfigRender.js +180 -0
  90. package/dist/utils/viteConfigRender.js.map +1 -0
  91. package/package.json +93 -0
  92. package/templates/common/base/.env +7 -0
  93. package/templates/common/base/.env.development +5 -0
  94. package/templates/common/base/.env.production +5 -0
  95. package/templates/common/base/package.json +56 -0
  96. package/templates/common/base/pnpm-workspace.yaml +37 -0
  97. package/templates/common/base/scripts/build.mts +31 -0
  98. package/templates/common/base/src/apis/index.ts +8 -0
  99. package/templates/common/base/src/apis/request.ts +43 -0
  100. package/templates/common/base/src/apis/services/example.ts +40 -0
  101. package/templates/common/base/src/apis/services/user.ts +23 -0
  102. package/templates/common/base/src/apis/types/common.ts +28 -0
  103. package/templates/common/base/src/apis/types/example.ts +18 -0
  104. package/templates/common/base/src/apis/types/index.ts +7 -0
  105. package/templates/common/base/src/apis/types/user.ts +24 -0
  106. package/templates/common/base/src/assets/fonts/index.css +7 -0
  107. package/templates/common/base/src/assets/styles/base.scss +72 -0
  108. package/templates/common/base/src/assets/styles/custom.scss +7 -0
  109. package/templates/common/base/src/assets/styles/tailwind.scss +6 -0
  110. package/templates/common/base/src/constants/index.ts +29 -0
  111. package/templates/common/base/src/locales/lang/en.ts +30 -0
  112. package/templates/common/base/src/locales/lang/es.ts +30 -0
  113. package/templates/common/base/src/locales/lang/zh.ts +30 -0
  114. package/templates/common/base/src/utils/index.ts +83 -0
  115. package/templates/common/features/husky/.cz-config.cjs +35 -0
  116. package/templates/common/features/husky/.husky/commit-msg +9 -0
  117. package/templates/common/features/husky/.husky/install.mjs +6 -0
  118. package/templates/common/features/husky/.husky/pre-commit +4 -0
  119. package/templates/common/features/husky/commitlint.config.ts +32 -0
  120. package/templates/common/features/husky/package.json +28 -0
  121. package/templates/common/features/husky/pnpm-workspace.yaml +9 -0
  122. package/templates/react/base/env.d.ts +19 -0
  123. package/templates/react/base/index.html +14 -0
  124. package/templates/react/base/package.json +15 -0
  125. package/templates/react/base/pnpm-workspace.yaml +9 -0
  126. package/templates/react/base/src/App.tsx +18 -0
  127. package/templates/react/base/src/assets/styles/main.scss +8 -0
  128. package/templates/react/base/src/main.tsx.ejs +39 -0
  129. package/templates/react/base/src/pages/about/index.tsx +14 -0
  130. package/templates/react/base/src/pages/home/index.tsx +14 -0
  131. package/templates/react/base/src/router/index.tsx.ejs +28 -0
  132. package/templates/react/base/src/stores/user.ts +39 -0
  133. package/templates/react/base/tsconfig.app.json +17 -0
  134. package/templates/react/base/tsconfig.base.json +23 -0
  135. package/templates/react/base/tsconfig.json +12 -0
  136. package/templates/react/base/tsconfig.node.json +15 -0
  137. package/templates/react/base/vite.config.ts +52 -0
  138. package/templates/react/features/ant-design/package.json +7 -0
  139. package/templates/react/features/ant-design/pnpm-workspace.yaml +5 -0
  140. package/templates/react/features/eslint/eslint.config.ts +12 -0
  141. package/templates/react/features/eslint/package.json +7 -0
  142. package/templates/react/features/eslint/pnpm-workspace.yaml +6 -0
  143. package/templates/react/features/i18n/package.json +7 -0
  144. package/templates/react/features/i18n/pnpm-workspace.yaml +5 -0
  145. package/templates/react/features/i18n/src/locales/index.ts +20 -0
  146. package/templates/react/features/manualRoutes/src/router/routes.tsx +21 -0
  147. package/templates/react/features/pageRoutes/package.json +6 -0
  148. package/templates/react/features/pageRoutes/pnpm-workspace.yaml +4 -0
  149. package/templates/react/features/pageRoutes/vite.config.data.ts +10 -0
  150. package/templates/react/features/router/package.json +5 -0
  151. package/templates/react/features/router/pnpm-workspace.yaml +3 -0
  152. package/templates/react/features/sentry/package.json +7 -0
  153. package/templates/react/features/sentry/pnpm-workspace.yaml +5 -0
  154. package/templates/react/features/sentry/src/utils/sentry.ts +30 -0
  155. package/templates/react/features/sentry/vite.config.data.ts +23 -0
  156. package/templates/react/features/zustand/package.json +5 -0
  157. package/templates/react/features/zustand/pnpm-workspace.yaml +3 -0
  158. package/templates/react/features/zustand/src/stores/user.ts +19 -0
  159. package/templates/react/features/zustand/src/types/stores.ts +15 -0
  160. package/templates/vue/base/env.d.ts +27 -0
  161. package/templates/vue/base/index.html +14 -0
  162. package/templates/vue/base/package.json +13 -0
  163. package/templates/vue/base/pnpm-workspace.yaml +6 -0
  164. package/templates/vue/base/src/App.vue +13 -0
  165. package/templates/vue/base/src/assets/styles/element/index.scss +27 -0
  166. package/templates/vue/base/src/assets/styles/main.scss +9 -0
  167. package/templates/vue/base/src/components/SubMenu/index.ts +9 -0
  168. package/templates/vue/base/src/components/SubMenu/src/_types/index.ts +6 -0
  169. package/templates/vue/base/src/components/SubMenu/src/_types/props.ts +11 -0
  170. package/templates/vue/base/src/components/SubMenu/src/index.vue +24 -0
  171. package/templates/vue/base/src/directives/index.ts +36 -0
  172. package/templates/vue/base/src/layouts/AntDesign.vue +86 -0
  173. package/templates/vue/base/src/layouts/element.vue +81 -0
  174. package/templates/vue/base/src/layouts/index.ts +7 -0
  175. package/templates/vue/base/src/main.ts.ejs +100 -0
  176. package/templates/vue/base/src/pages/about/index.vue +31 -0
  177. package/templates/vue/base/src/pages/home/index.vue +31 -0
  178. package/templates/vue/base/src/router/index.ts.ejs +39 -0
  179. package/templates/vue/base/src/stores/index.ts +16 -0
  180. package/templates/vue/base/src/stores/modules/system.ts +52 -0
  181. package/templates/vue/base/src/stores/modules/user.ts +48 -0
  182. package/templates/vue/base/tsconfig.app.json +17 -0
  183. package/templates/vue/base/tsconfig.base.json +23 -0
  184. package/templates/vue/base/tsconfig.json +12 -0
  185. package/templates/vue/base/tsconfig.node.json +15 -0
  186. package/templates/vue/base/vite.config.ts +53 -0
  187. package/templates/vue/features/ant-design-vue/package.json +7 -0
  188. package/templates/vue/features/ant-design-vue/pnpm-workspace.yaml +5 -0
  189. package/templates/vue/features/element-plus/package.json +7 -0
  190. package/templates/vue/features/element-plus/pnpm-workspace.yaml +5 -0
  191. package/templates/vue/features/element-plus/vite.config.data.ts +15 -0
  192. package/templates/vue/features/eslint/eslint.config.ts +12 -0
  193. package/templates/vue/features/eslint/package.json +7 -0
  194. package/templates/vue/features/eslint/pnpm-workspace.yaml +6 -0
  195. package/templates/vue/features/i18n/package.json +5 -0
  196. package/templates/vue/features/i18n/pnpm-workspace.yaml +3 -0
  197. package/templates/vue/features/i18n/src/locales/index.ts +16 -0
  198. package/templates/vue/features/manualRoutes/src/router/layout.vue +10 -0
  199. package/templates/vue/features/manualRoutes/src/router/routes.ts +27 -0
  200. package/templates/vue/features/pageRoutes/package.json +5 -0
  201. package/templates/vue/features/pageRoutes/pnpm-workspace.yaml +4 -0
  202. package/templates/vue/features/pageRoutes/vite.config.data.ts +9 -0
  203. package/templates/vue/features/pinia/package.json +6 -0
  204. package/templates/vue/features/pinia/pnpm-workspace.yaml +4 -0
  205. package/templates/vue/features/pinia/src/stores/index.ts +8 -0
  206. package/templates/vue/features/pinia/src/stores/user.ts +36 -0
  207. package/templates/vue/features/qiankun/package.json +5 -0
  208. package/templates/vue/features/qiankun/pnpm-workspace.yaml +3 -0
  209. package/templates/vue/features/qiankun/src/qiankun/index.ts +56 -0
  210. package/templates/vue/features/router/package.json +5 -0
  211. package/templates/vue/features/router/pnpm-workspace.yaml +3 -0
  212. package/templates/vue/features/sentry/package.json +6 -0
  213. package/templates/vue/features/sentry/pnpm-workspace.yaml +4 -0
  214. package/templates/vue/features/sentry/src/utils/sentry.ts +33 -0
  215. package/templates/vue/features/sentry/vite.config.data.ts +23 -0
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 moluoxixi-template
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,129 @@
1
+ # @moluoxixi/create-app
2
+
3
+ > 基于原子化分层叠加架构的项目脚手架 CLI
4
+
5
+ ## 快速开始
6
+
7
+ ```bash
8
+ # 使用 npx
9
+ npx @moluoxixi/create-app
10
+
11
+ # 使用 pnpm
12
+ pnpm create @moluoxixi/app
13
+
14
+ # 使用 npm
15
+ npm create @moluoxixi/app
16
+ ```
17
+
18
+ ## 特性
19
+
20
+ - 🚀 **原子化分层架构** - L0/L1/L2 三层模板,灵活组合
21
+ - 📦 **多框架支持** - Vue 3、React 18
22
+ - 🎨 **多 UI 库** - Element Plus、Ant Design Vue、Ant Design
23
+ - 🌍 **国际化** - 内置 vue-i18n / i18next 支持
24
+ - 📊 **错误监控** - 可选 Sentry 集成
25
+ - 🔗 **微前端** - 可选 Qiankun 支持 (Vue)
26
+ - ⚡ **文件系统路由** - 可选 vite-plugin-pages
27
+ - 📝 **TypeScript** - 全面的类型支持
28
+ - 🔧 **规范配置** - ESLint + Commitlint + Husky
29
+
30
+ ## 内置依赖
31
+
32
+ 所有生成的项目都包含以下核心依赖:
33
+
34
+ | 依赖包 | 用途 |
35
+ |--------|------|
36
+ | `@moluoxixi/eslint-config` | ESLint 统一配置 |
37
+ | `@moluoxixi/vite-config` | Vite 构建配置 |
38
+ | `@moluoxixi/ajax-package` | HTTP 请求封装 |
39
+ | `@moluoxixi/class-names` | CSS 类名工具 |
40
+ | `@moluoxixi/css-module-global-root-plugin` | CSS Module 插件 |
41
+
42
+ ## 项目结构
43
+
44
+ 生成的项目结构示例:
45
+
46
+ ```
47
+ my-project/
48
+ ├── .husky/ # Git Hooks
49
+ ├── scripts/ # 构建脚本
50
+ ├── src/
51
+ │ ├── apis/ # API 请求层
52
+ │ ├── assets/ # 静态资源
53
+ │ ├── components/ # 公共组件
54
+ │ ├── constants/ # 常量定义
55
+ │ ├── directives/ # Vue 指令
56
+ │ ├── layouts/ # 布局组件
57
+ │ ├── locales/ # 多语言文件
58
+ │ ├── pages/ # 页面组件
59
+ │ ├── router/ # 路由配置
60
+ │ ├── stores/ # 状态管理
61
+ │ ├── utils/ # 工具函数
62
+ │ ├── App.vue # 根组件
63
+ │ └── main.ts # 入口文件
64
+ ├── .env # 环境变量
65
+ ├── package.json # 项目配置
66
+ ├── pnpm-workspace.yaml # pnpm 工作区
67
+ ├── vite.config.ts # Vite 配置
68
+ ├── eslint.config.ts # ESLint 配置
69
+ └── tsconfig.json # TypeScript 配置
70
+ ```
71
+
72
+ ## 命令
73
+
74
+ ```bash
75
+ # 开发
76
+ pnpm dev
77
+
78
+ # 构建
79
+ pnpm build
80
+
81
+ # 构建并打包
82
+ pnpm build:zip
83
+
84
+ # 类型检查
85
+ pnpm type-check
86
+
87
+ # 代码检查
88
+ pnpm lint:eslint
89
+
90
+ # 提交代码
91
+ pnpm commit
92
+ ```
93
+
94
+ ## 配置选项
95
+
96
+ | 选项 | 类型 | 说明 |
97
+ |------|------|------|
98
+ | 项目名称 | string | 项目名称,用于 package.json |
99
+ | 框架 | vue / react | 前端框架 |
100
+ | UI 库 | element-plus / ant-design-vue / ant-design | UI 组件库 |
101
+ | 路由模式 | manual / file-system | 手动配置或文件系统路由 |
102
+ | 国际化 | boolean | 是否启用多语言支持 |
103
+ | 错误监控 | boolean | 是否集成 Sentry |
104
+ | 微前端 | boolean | 是否支持 Qiankun (仅 Vue) |
105
+ | 包管理器 | pnpm / npm / yarn | 包管理器 |
106
+
107
+ ## 开发
108
+
109
+ ```bash
110
+ # 克隆仓库
111
+ git clone https://github.com/moluoxixi/create-app.git
112
+
113
+ # 安装依赖
114
+ pnpm install
115
+
116
+ # 运行测试
117
+ pnpm test
118
+
119
+ # 构建
120
+ pnpm build
121
+ ```
122
+
123
+ ## 架构文档
124
+
125
+ 详细的架构说明请参阅 [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md)
126
+
127
+ ## 许可证
128
+
129
+ MIT
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Create 命令
3
+ * 创建新项目的核心逻辑
4
+ */
5
+ /**
6
+ * 创建项目
7
+ * @param projectName 项目名称(可选)
8
+ */
9
+ export declare function createProject(projectName?: string): Promise<void>;
10
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;GAGG;AACH,wBAAsB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoFvE"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Create 命令
3
+ * 创建新项目的核心逻辑
4
+ */
5
+ import process from 'node:process';
6
+ import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import { generateProject } from '../generators/project';
9
+ import { pathExists } from '../utils/file';
10
+ import { initGit, installDependencies } from '../utils/install';
11
+ import { collectProjectConfig, confirmOverwrite } from '../utils/prompts';
12
+ /**
13
+ * 创建项目
14
+ * @param projectName 项目名称(可选)
15
+ */
16
+ export async function createProject(projectName) {
17
+ try {
18
+ // 显示欢迎信息
19
+ console.log(chalk.blue.bold('\n🚀 欢迎使用 Vite Template CLI!\n'));
20
+ console.log(chalk.gray('基于原子化分层叠加架构的项目脚手架\n'));
21
+ // 收集项目配置
22
+ const config = await collectProjectConfig(projectName);
23
+ // 检查目标目录是否已存在
24
+ if (pathExists(config.targetDir)) {
25
+ const shouldOverwrite = await confirmOverwrite(config.targetDir);
26
+ if (!shouldOverwrite) {
27
+ console.log(chalk.yellow('\n⚠️ 已取消创建项目\n'));
28
+ process.exit(0);
29
+ }
30
+ }
31
+ // 显示配置摘要
32
+ console.log(chalk.green('\n📋 项目配置:'));
33
+ console.log(chalk.gray(` 项目名称: ${chalk.white(config.projectName)}`));
34
+ console.log(chalk.gray(` 框架: ${chalk.white(config.framework)}`));
35
+ console.log(chalk.gray(` UI 组件库: ${chalk.white(config.uiLibrary)}`));
36
+ console.log(chalk.gray(` 路由模式: ${chalk.white(config.routeMode)}`));
37
+ console.log(chalk.gray(` 国际化: ${chalk.white(config.i18n ? '是' : '否')}`));
38
+ console.log(chalk.gray(` 微前端: ${chalk.white(config.qiankun ? '是' : '否')}`));
39
+ console.log(chalk.gray(` 错误监控: ${chalk.white(config.sentry ? '是' : '否')}`));
40
+ console.log(chalk.gray(` 包管理器: ${chalk.white(config.packageManager)}`));
41
+ console.log('');
42
+ // 创建项目
43
+ const spinner = ora('正在创建项目...').start();
44
+ try {
45
+ await generateProject(config);
46
+ spinner.succeed('项目创建成功!');
47
+ }
48
+ catch (error) {
49
+ spinner.fail('项目创建失败');
50
+ throw error;
51
+ }
52
+ // 安装依赖
53
+ const installSpinner = ora('正在安装依赖...').start();
54
+ try {
55
+ installDependencies(config.packageManager, config.targetDir);
56
+ installSpinner.succeed('依赖安装成功!');
57
+ }
58
+ catch {
59
+ installSpinner.fail('依赖安装失败');
60
+ console.log(chalk.yellow('\n⚠️ 项目已创建,但依赖安装失败。'));
61
+ console.log(chalk.yellow(` 请手动运行 "${config.packageManager} install"\n`));
62
+ }
63
+ // 初始化 Git
64
+ const gitSpinner = ora('正在初始化 Git...').start();
65
+ try {
66
+ initGit(config.targetDir);
67
+ gitSpinner.succeed('Git 初始化成功!');
68
+ }
69
+ catch {
70
+ gitSpinner.warn('Git 初始化跳过');
71
+ }
72
+ // 显示成功信息
73
+ console.log(chalk.green.bold('\n✅ 项目创建成功!\n'));
74
+ console.log(chalk.blue('下一步:'));
75
+ console.log(chalk.gray(` cd ${config.projectName}`));
76
+ console.log(chalk.gray(` ${config.packageManager} dev\n`));
77
+ // 显示特性信息
78
+ console.log(chalk.blue('已启用的 @moluoxixi 依赖:'));
79
+ console.log(chalk.gray(' @moluoxixi/eslint-config@latest'));
80
+ console.log(chalk.gray(' @moluoxixi/vite-config@latest'));
81
+ console.log(chalk.gray(' @moluoxixi/ajax-package@latest'));
82
+ console.log('');
83
+ }
84
+ catch (error) {
85
+ console.error(chalk.red('\n❌ 错误:'), error);
86
+ process.exit(1);
87
+ }
88
+ }
89
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 命令导出
3
+ */
4
+ export * from './create';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 命令导出
3
+ */
4
+ export * from './create';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 生成器导出
3
+ */
4
+ export * from './project';
5
+ export * from './react';
6
+ export * from './vue';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 生成器导出
3
+ */
4
+ export * from './project';
5
+ export * from './react';
6
+ export * from './vue';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 项目生成器
3
+ * 根据配置生成完整的项目结构
4
+ */
5
+ import type { ProjectConfigType } from '../types';
6
+ /**
7
+ * 生成项目
8
+ * @param config 项目配置
9
+ */
10
+ export declare function generateProject(config: ProjectConfigType): Promise<void>;
11
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/generators/project.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAMjD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9E"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 项目生成器
3
+ * 根据配置生成完整的项目结构
4
+ */
5
+ import { emptyDir } from '../utils/file';
6
+ import { generateReactProject } from './react';
7
+ import { generateVueProject } from './vue';
8
+ /**
9
+ * 生成项目
10
+ * @param config 项目配置
11
+ */
12
+ export async function generateProject(config) {
13
+ // 清空并创建项目根目录(确保干净的构建环境)
14
+ emptyDir(config.targetDir);
15
+ // 根据框架类型生成不同的项目结构
16
+ if (config.framework === 'vue') {
17
+ await generateVueProject(config);
18
+ }
19
+ else if (config.framework === 'react') {
20
+ await generateReactProject(config);
21
+ }
22
+ else {
23
+ throw new Error(`不支持的框架: ${config.framework}`);
24
+ }
25
+ }
26
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/generators/project.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAyB;IAC7D,wBAAwB;IACxB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAE1B,kBAAkB;IAClB,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;SACI,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACtC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;SACI,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * React 项目生成器
3
+ * 采用物理路径合并 + EJS 模板 + 数据驱动配置
4
+ */
5
+ import type { ProjectConfigType } from '../types';
6
+ /**
7
+ * 生成 React 项目
8
+ */
9
+ export declare function generateReactProject(config: ProjectConfigType): Promise<void>;
10
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/generators/react.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAWjD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCnF"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * React 项目生成器
3
+ * 采用物理路径合并 + EJS 模板 + 数据驱动配置
4
+ */
5
+ import fs from 'node:fs';
6
+ import path from 'node:path';
7
+ import { renderEjsToFile } from '../utils/ejs';
8
+ import { getTemplatesDir } from '../utils/file';
9
+ import { renderCommonFeatures, renderFrameworkFeatures } from '../utils/renderFeatures';
10
+ import { renderTemplate } from '../utils/renderTemplate';
11
+ import { renderViteConfig } from '../utils/viteConfigRender';
12
+ /**
13
+ * 生成 React 项目
14
+ */
15
+ export async function generateReactProject(config) {
16
+ const { targetDir } = config;
17
+ const templatesDir = getTemplatesDir();
18
+ // 1. 渲染 L0 公共基础模板
19
+ renderTemplate(path.join(templatesDir, 'common', 'base'), targetDir);
20
+ // 2. 渲染公共特性模板
21
+ renderCommonFeatures(config, targetDir);
22
+ // 3. 渲染 L1 React 基础模板
23
+ renderTemplate(path.join(templatesDir, 'react', 'base'), targetDir);
24
+ // 4. 渲染 L2 特性模板(统一处理)
25
+ renderFrameworkFeatures(config, targetDir);
26
+ // 5. 渲染 EJS 模板(main.tsx, router/index.tsx)
27
+ const ejsData = {
28
+ i18n: config.i18n,
29
+ sentry: config.sentry,
30
+ routeMode: config.routeMode,
31
+ uiLibrary: config.uiLibrary,
32
+ };
33
+ renderEjsToFile(path.join(templatesDir, 'react', 'base', 'src', 'main.tsx.ejs'), path.join(targetDir, 'src', 'main.tsx'), ejsData);
34
+ renderEjsToFile(path.join(templatesDir, 'react', 'base', 'src', 'router', 'index.tsx.ejs'), path.join(targetDir, 'src', 'router', 'index.tsx'), ejsData);
35
+ // 6. 数据驱动生成 vite.config.ts
36
+ const viteConfigContent = renderViteConfig(config);
37
+ fs.writeFileSync(path.join(targetDir, 'vite.config.ts'), viteConfigContent);
38
+ }
39
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/generators/react.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAyB;IAClE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAC5B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IAEtC,kBAAkB;IAClB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;IAEpE,cAAc;IACd,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAEvC,sBAAsB;IACtB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;IAEnE,sBAAsB;IACtB,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE1C,2CAA2C;IAC3C,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;IAED,eAAe,CACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,EAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EACvC,OAAO,CACR,CAAA;IAED,eAAe,CACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,CAAC,EAC1E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,EAClD,OAAO,CACR,CAAA;IAED,2BAA2B;IAC3B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAClD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAA;AAC7E,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Vue 项目生成器
3
+ * 采用物理路径合并 + EJS 模板 + 数据驱动配置
4
+ */
5
+ import type { ProjectConfigType } from '../types';
6
+ /**
7
+ * 生成 Vue 项目
8
+ */
9
+ export declare function generateVueProject(config: ProjectConfigType): Promise<void>;
10
+ //# sourceMappingURL=vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../src/generators/vue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAWjD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCjF"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Vue 项目生成器
3
+ * 采用物理路径合并 + EJS 模板 + 数据驱动配置
4
+ */
5
+ import fs from 'node:fs';
6
+ import path from 'node:path';
7
+ import { renderEjsToFile } from '../utils/ejs';
8
+ import { getTemplatesDir } from '../utils/file';
9
+ import { renderCommonFeatures, renderFrameworkFeatures } from '../utils/renderFeatures';
10
+ import { renderTemplate } from '../utils/renderTemplate';
11
+ import { renderViteConfig } from '../utils/viteConfigRender';
12
+ /**
13
+ * 生成 Vue 项目
14
+ */
15
+ export async function generateVueProject(config) {
16
+ const { targetDir } = config;
17
+ const templatesDir = getTemplatesDir();
18
+ // 1. 渲染 L0 公共基础模板
19
+ renderTemplate(path.join(templatesDir, 'common', 'base'), targetDir);
20
+ // 2. 渲染公共特性模板
21
+ renderCommonFeatures(config, targetDir);
22
+ // 3. 渲染 L1 Vue 基础模板
23
+ renderTemplate(path.join(templatesDir, 'vue', 'base'), targetDir);
24
+ // 4. 渲染 L2 特性模板(统一处理)
25
+ renderFrameworkFeatures(config, targetDir);
26
+ // 5. 渲染 EJS 模板(main.ts, router/index.ts)
27
+ const ejsData = {
28
+ i18n: config.i18n,
29
+ sentry: config.sentry,
30
+ qiankun: config.qiankun,
31
+ routeMode: config.routeMode,
32
+ uiLibrary: config.uiLibrary,
33
+ };
34
+ renderEjsToFile(path.join(templatesDir, 'vue', 'base', 'src', 'main.ts.ejs'), path.join(targetDir, 'src', 'main.ts'), ejsData);
35
+ renderEjsToFile(path.join(templatesDir, 'vue', 'base', 'src', 'router', 'index.ts.ejs'), path.join(targetDir, 'src', 'router', 'index.ts'), ejsData);
36
+ // 6. 数据驱动生成 vite.config.ts
37
+ const viteConfigContent = renderViteConfig(config);
38
+ fs.writeFileSync(path.join(targetDir, 'vite.config.ts'), viteConfigContent);
39
+ }
40
+ //# sourceMappingURL=vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","sourceRoot":"","sources":["../../src/generators/vue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAyB;IAChE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAC5B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IAEtC,kBAAkB;IAClB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;IAEpE,cAAc;IACd,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAEvC,oBAAoB;IACpB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;IAEjE,sBAAsB;IACtB,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE1C,yCAAyC;IACzC,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;IAED,eAAe,CACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,EAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,EACtC,OAAO,CACR,CAAA;IAED,eAAe,CACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,EACvE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EACjD,OAAO,CACR,CAAA;IAED,2BAA2B;IAC3B,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAClD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAA;AAC7E,CAAC"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI 入口文件
4
+ * 基于原子化分层叠加架构的项目脚手架
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI 入口文件
4
+ * 基于原子化分层叠加架构的项目脚手架
5
+ */
6
+ import { Command } from 'commander';
7
+ import { createProject } from './commands/create';
8
+ const program = new Command();
9
+ program
10
+ .name('create-mox')
11
+ .description('基于原子化分层叠加架构的 Vue/React 项目脚手架')
12
+ .version('1.0.0');
13
+ program
14
+ .command('create [project-name]')
15
+ .description('创建新项目')
16
+ .action(async (projectName) => {
17
+ await createProject(projectName);
18
+ });
19
+ // 默认命令:直接运行时创建项目
20
+ program
21
+ .argument('[project-name]', '项目名称')
22
+ .action(async (projectName) => {
23
+ await createProject(projectName);
24
+ });
25
+ program.parse();
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,KAAK,EAAE,WAAoB,EAAE,EAAE;IACrC,MAAM,aAAa,CAAC,WAAW,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEJ,iBAAiB;AACjB,OAAO;KACJ,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,WAAoB,EAAE,EAAE;IACrC,MAAM,aAAa,CAAC,WAAW,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAA"}
package/dist/test.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 测试脚本
3
+ * 生成验收样本并进行产物审计
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}