@moluoxixi/create-app 2.0.436 → 2.0.438

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 (273) hide show
  1. package/dist/constants/index.d.ts +5 -0
  2. package/dist/constants/index.js +8 -0
  3. package/dist/core/feature.d.ts +26 -20
  4. package/dist/core/feature.js +47 -52
  5. package/dist/core/prompts.js +6 -3
  6. package/dist/core/template.js +1 -1
  7. package/dist/generators/project.js +8 -0
  8. package/dist/types/packageJson.d.ts +2 -0
  9. package/dist/utils/deepMerge.d.ts +1 -1
  10. package/dist/utils/file.js +6 -2
  11. package/dist/utils/framework.d.ts +11 -0
  12. package/dist/utils/framework.js +13 -0
  13. package/dist/utils/index.d.ts +1 -0
  14. package/dist/utils/index.js +1 -0
  15. package/package.json +4 -5
  16. package/templates/common/base/_npmrc +2 -0
  17. package/templates/common/base/_yarnrc.yml +3 -0
  18. package/templates/common/base/node_modules/.bin/parser +4 -4
  19. package/templates/common/base/node_modules/.bin/rollup +4 -4
  20. package/templates/common/base/node_modules/.bin/sass +2 -2
  21. package/templates/common/base/node_modules/.bin/terser +4 -4
  22. package/templates/common/base/node_modules/.bin/vite +2 -2
  23. package/templates/common/base/package.json +2 -4
  24. package/templates/common/base/scripts/build.mts +15 -10
  25. package/templates/common/base/src/apis/request.ts +23 -32
  26. package/templates/common/base/src/apis/services/example.ts +2 -2
  27. package/templates/common/base/src/apis/services/user.ts +2 -2
  28. package/templates/common/base/tsconfig.app.json +25 -0
  29. package/templates/common/base/tsconfig.base.json +17 -0
  30. package/templates/common/base/tsconfig.json +11 -0
  31. package/templates/common/base/tsconfig.node.json +14 -0
  32. package/templates/common/base/vite/index.ts +19 -18
  33. package/templates/common/base/vite.config.ts +8 -4
  34. package/templates/common/features/eslint/node_modules/.bin/sass +17 -0
  35. package/templates/common/features/eslint/node_modules/.bin/terser +17 -0
  36. package/templates/common/features/eslint/node_modules/.bin/tsx +17 -0
  37. package/templates/common/features/eslint/node_modules/.bin/vitest +17 -0
  38. package/templates/common/features/eslint/node_modules/.bin/yaml +17 -0
  39. package/templates/common/features/eslint/tsconfig.base.json +17 -0
  40. package/templates/common/features/eslint/tsconfig.json +8 -0
  41. package/templates/common/features/eslint/tsconfig.node.json +13 -0
  42. package/templates/common/features/husky/.husky/pre-commit +1 -1
  43. package/templates/common/features/husky/node_modules/.bin/commitizen +2 -2
  44. package/templates/common/features/husky/node_modules/.bin/commitlint +2 -2
  45. package/templates/common/features/husky/node_modules/.bin/cz +2 -2
  46. package/templates/common/features/husky/node_modules/.bin/git-cz +2 -2
  47. package/templates/common/features/husky/tsconfig.base.json +17 -0
  48. package/templates/common/features/husky/tsconfig.json +8 -0
  49. package/templates/common/features/husky/tsconfig.node.json +13 -0
  50. package/templates/react/base/node_modules/.bin/sass +4 -4
  51. package/templates/react/base/node_modules/.bin/terser +4 -4
  52. package/templates/react/base/node_modules/.bin/vite +4 -4
  53. package/templates/react/base/package.json +2 -1
  54. package/templates/react/base/src/main.tsx +1 -1
  55. package/templates/react/base/src/router/index.tsx +26 -0
  56. package/templates/react/base/src/utils/common.ts +126 -0
  57. package/templates/react/base/src/utils/index.ts +7 -0
  58. package/templates/react/base/tsconfig.app.json +13 -5
  59. package/templates/react/base/tsconfig.node.json +6 -7
  60. package/templates/react/features/ant-design/tsconfig.app.json +25 -0
  61. package/templates/react/features/ant-design/tsconfig.base.json +22 -0
  62. package/templates/react/features/ant-design/tsconfig.json +11 -0
  63. package/templates/react/features/ant-design/tsconfig.node.json +14 -0
  64. package/templates/react/features/i18n/tsconfig.app.json +25 -0
  65. package/templates/react/features/i18n/tsconfig.base.json +22 -0
  66. package/templates/react/features/i18n/tsconfig.json +11 -0
  67. package/templates/react/features/i18n/tsconfig.node.json +14 -0
  68. package/templates/react/features/manualRoutes/tsconfig.app.json +25 -0
  69. package/templates/react/features/manualRoutes/tsconfig.base.json +27 -0
  70. package/templates/react/features/manualRoutes/tsconfig.json +11 -0
  71. package/templates/react/features/manualRoutes/tsconfig.node.json +14 -0
  72. package/templates/react/features/pageRoutes/node_modules/.bin/browserslist +17 -0
  73. package/templates/react/features/pageRoutes/node_modules/.bin/jiti +17 -0
  74. package/templates/react/features/pageRoutes/node_modules/.bin/parser +17 -0
  75. package/templates/react/features/pageRoutes/node_modules/.bin/rollup +17 -0
  76. package/templates/react/features/pageRoutes/node_modules/.bin/sass +17 -0
  77. package/templates/react/features/pageRoutes/node_modules/.bin/terser +17 -0
  78. package/templates/react/features/pageRoutes/node_modules/.bin/tsc +17 -0
  79. package/templates/react/features/pageRoutes/node_modules/.bin/tsserver +17 -0
  80. package/templates/react/features/pageRoutes/node_modules/.bin/tsx +17 -0
  81. package/templates/react/features/pageRoutes/node_modules/.bin/vite +17 -0
  82. package/templates/react/features/pageRoutes/node_modules/.bin/yaml +17 -0
  83. package/templates/react/features/pageRoutes/package.json +4 -0
  84. package/templates/react/features/pageRoutes/tsconfig.app.json +25 -0
  85. package/templates/react/features/pageRoutes/tsconfig.base.json +27 -0
  86. package/templates/react/features/pageRoutes/tsconfig.json +11 -0
  87. package/templates/react/features/pageRoutes/tsconfig.node.json +14 -0
  88. package/templates/react/features/pageRoutes/vite/features/pageRoutes.ts +15 -0
  89. package/templates/react/features/sentry/node_modules/.bin/browserslist +17 -0
  90. package/templates/react/features/sentry/node_modules/.bin/jiti +17 -0
  91. package/templates/react/features/sentry/node_modules/.bin/parser +17 -0
  92. package/templates/react/features/sentry/node_modules/.bin/rollup +17 -0
  93. package/templates/react/features/sentry/node_modules/.bin/sass +17 -0
  94. package/templates/react/features/sentry/node_modules/.bin/terser +17 -0
  95. package/templates/react/features/sentry/node_modules/.bin/tsc +17 -0
  96. package/templates/react/features/sentry/node_modules/.bin/tsserver +17 -0
  97. package/templates/react/features/sentry/node_modules/.bin/tsx +17 -0
  98. package/templates/react/features/sentry/node_modules/.bin/vite +17 -0
  99. package/templates/react/features/sentry/node_modules/.bin/yaml +17 -0
  100. package/templates/react/features/sentry/package.json +3 -0
  101. package/templates/react/features/sentry/tsconfig.app.json +25 -0
  102. package/templates/react/features/sentry/tsconfig.base.json +22 -0
  103. package/templates/react/features/sentry/tsconfig.json +11 -0
  104. package/templates/react/features/sentry/tsconfig.node.json +14 -0
  105. package/templates/react/features/sentry/vite/features/sentry.ts +19 -25
  106. package/templates/react/features/zustand/tsconfig.app.json +25 -0
  107. package/templates/react/features/zustand/tsconfig.base.json +27 -0
  108. package/templates/react/features/zustand/tsconfig.json +11 -0
  109. package/templates/react/features/zustand/tsconfig.node.json +14 -0
  110. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/browserslist +17 -0
  111. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/parser +17 -0
  112. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/rollup +17 -0
  113. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/sass +4 -4
  114. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/terser +4 -4
  115. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/vite +2 -2
  116. package/templates/react/micro-frontends/qiankun/base/package.json +2 -1
  117. package/templates/react/micro-frontends/qiankun/base/src/main.tsx +3 -3
  118. package/templates/react/micro-frontends/qiankun/base/tsconfig.app.json +25 -0
  119. package/templates/react/micro-frontends/qiankun/base/tsconfig.base.json +27 -0
  120. package/templates/react/micro-frontends/qiankun/base/tsconfig.json +11 -0
  121. package/templates/react/micro-frontends/qiankun/base/tsconfig.node.json +14 -0
  122. package/templates/react/micro-frontends/qiankun/base/vite/index.ts +19 -18
  123. package/templates/vue/base/node_modules/.bin/vue-tsc +2 -2
  124. package/templates/vue/base/package.json +3 -2
  125. package/templates/vue/base/src/assets/fonts/index.css +6 -0
  126. package/templates/vue/base/src/assets/styles/base.scss +33 -0
  127. package/templates/vue/base/src/assets/styles/custom.scss +20 -0
  128. package/templates/vue/base/src/assets/styles/main.scss +8 -0
  129. package/templates/vue/base/src/assets/styles/tailwind.scss +3 -0
  130. package/templates/vue/base/src/main.ts +3 -3
  131. package/templates/vue/base/src/router/index.ts +25 -0
  132. package/templates/vue/base/src/utils/common.ts +126 -0
  133. package/templates/vue/base/src/utils/index.ts +4 -0
  134. package/templates/vue/base/tsconfig.app.json +10 -3
  135. package/templates/vue/base/tsconfig.base.json +2 -6
  136. package/templates/vue/base/tsconfig.json +1 -0
  137. package/templates/vue/base/tsconfig.node.json +1 -2
  138. package/templates/vue/features/ant-design-vue/tsconfig.app.json +33 -0
  139. package/templates/vue/features/ant-design-vue/tsconfig.base.json +25 -0
  140. package/templates/vue/features/ant-design-vue/tsconfig.json +12 -0
  141. package/templates/vue/features/ant-design-vue/tsconfig.node.json +14 -0
  142. package/templates/vue/features/element-plus/node_modules/.bin/browserslist +17 -0
  143. package/templates/vue/features/element-plus/node_modules/.bin/jiti +17 -0
  144. package/templates/vue/features/element-plus/node_modules/.bin/parser +17 -0
  145. package/templates/vue/features/element-plus/node_modules/.bin/rollup +17 -0
  146. package/templates/vue/features/element-plus/node_modules/.bin/sass +17 -0
  147. package/templates/vue/features/element-plus/node_modules/.bin/terser +17 -0
  148. package/templates/vue/features/element-plus/node_modules/.bin/tsx +17 -0
  149. package/templates/vue/features/element-plus/node_modules/.bin/vite +17 -0
  150. package/templates/vue/features/element-plus/node_modules/.bin/yaml +17 -0
  151. package/templates/vue/features/element-plus/package.json +4 -0
  152. package/templates/vue/features/element-plus/src/assets/styles/main.scss +0 -1
  153. package/templates/vue/features/element-plus/src/layouts/element.vue +1 -1
  154. package/templates/vue/features/element-plus/src/stores/modules/system.ts +1 -1
  155. package/templates/vue/features/element-plus/tsconfig.app.json +33 -0
  156. package/templates/vue/features/element-plus/tsconfig.base.json +25 -0
  157. package/templates/vue/features/element-plus/tsconfig.json +12 -0
  158. package/templates/vue/features/element-plus/tsconfig.node.json +14 -0
  159. package/templates/vue/features/element-plus/vite/features/element-plus.ts +13 -18
  160. package/templates/vue/features/i18n/tsconfig.app.json +33 -0
  161. package/templates/vue/features/i18n/tsconfig.base.json +25 -0
  162. package/templates/vue/features/i18n/tsconfig.json +12 -0
  163. package/templates/vue/features/i18n/tsconfig.node.json +14 -0
  164. package/templates/vue/features/manualRoutes/package.json +2 -1
  165. package/templates/vue/features/manualRoutes/src/layouts/index.ts +26 -0
  166. package/templates/vue/features/manualRoutes/src/router/index.ts +1 -1
  167. package/templates/vue/features/manualRoutes/src/stores/modules/system.ts +1 -1
  168. package/templates/vue/features/manualRoutes/tsconfig.app.json +33 -0
  169. package/templates/vue/features/manualRoutes/tsconfig.base.json +25 -0
  170. package/templates/vue/features/manualRoutes/tsconfig.json +12 -0
  171. package/templates/vue/features/manualRoutes/tsconfig.node.json +14 -0
  172. package/templates/vue/features/pageRoutes/node_modules/.bin/browserslist +17 -0
  173. package/templates/vue/features/pageRoutes/node_modules/.bin/jiti +17 -0
  174. package/templates/vue/features/pageRoutes/node_modules/.bin/parser +17 -0
  175. package/templates/vue/features/pageRoutes/node_modules/.bin/rollup +17 -0
  176. package/templates/vue/features/pageRoutes/node_modules/.bin/sass +17 -0
  177. package/templates/vue/features/pageRoutes/node_modules/.bin/terser +17 -0
  178. package/templates/vue/features/pageRoutes/node_modules/.bin/tsx +17 -0
  179. package/templates/vue/features/pageRoutes/node_modules/.bin/vite +17 -0
  180. package/templates/vue/features/pageRoutes/node_modules/.bin/yaml +17 -0
  181. package/templates/vue/features/pageRoutes/package.json +4 -1
  182. package/templates/vue/features/pageRoutes/src/layouts/index.ts +26 -0
  183. package/templates/vue/features/pageRoutes/src/stores/modules/system.ts +1 -1
  184. package/templates/vue/features/pageRoutes/tsconfig.app.json +33 -0
  185. package/templates/vue/features/pageRoutes/tsconfig.base.json +25 -0
  186. package/templates/vue/features/pageRoutes/tsconfig.json +12 -0
  187. package/templates/vue/features/pageRoutes/tsconfig.node.json +14 -0
  188. package/templates/vue/features/pageRoutes/vite/features/pageRoutes.ts +15 -0
  189. package/templates/vue/features/pinia/package.json +3 -0
  190. package/templates/vue/features/pinia/src/stores/modules/system.ts +1 -1
  191. package/templates/vue/features/pinia/tsconfig.app.json +33 -0
  192. package/templates/vue/features/pinia/tsconfig.base.json +25 -0
  193. package/templates/vue/features/pinia/tsconfig.json +12 -0
  194. package/templates/vue/features/pinia/tsconfig.node.json +14 -0
  195. package/templates/vue/features/sentry/node_modules/.bin/browserslist +17 -0
  196. package/templates/vue/features/sentry/node_modules/.bin/jiti +17 -0
  197. package/templates/vue/features/sentry/node_modules/.bin/parser +17 -0
  198. package/templates/vue/features/sentry/node_modules/.bin/rollup +17 -0
  199. package/templates/vue/features/sentry/node_modules/.bin/sass +17 -0
  200. package/templates/vue/features/sentry/node_modules/.bin/terser +17 -0
  201. package/templates/vue/features/sentry/node_modules/.bin/tsx +17 -0
  202. package/templates/vue/features/sentry/node_modules/.bin/vite +17 -0
  203. package/templates/vue/features/sentry/node_modules/.bin/yaml +17 -0
  204. package/templates/vue/features/sentry/package.json +3 -0
  205. package/templates/vue/features/sentry/tsconfig.app.json +33 -0
  206. package/templates/vue/features/sentry/tsconfig.base.json +25 -0
  207. package/templates/vue/features/sentry/tsconfig.json +12 -0
  208. package/templates/vue/features/sentry/tsconfig.node.json +14 -0
  209. package/templates/vue/features/sentry/vite/features/sentry.ts +19 -25
  210. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/browserslist +17 -0
  211. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/jiti +2 -2
  212. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/parser +17 -0
  213. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/rollup +17 -0
  214. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/sass +4 -4
  215. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/terser +4 -4
  216. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/vite +2 -2
  217. package/templates/vue/micro-frontends/qiankun/base/package.json +6 -1
  218. package/templates/vue/micro-frontends/qiankun/base/src/App.vue +13 -0
  219. package/templates/vue/micro-frontends/qiankun/base/src/assets/fonts/index.css +6 -0
  220. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/base.scss +33 -0
  221. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/custom.scss +20 -0
  222. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/main.scss +8 -0
  223. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/tailwind.scss +3 -0
  224. package/templates/vue/micro-frontends/qiankun/base/src/directives/index.ts +36 -0
  225. package/templates/vue/micro-frontends/qiankun/base/src/main.ts +5 -5
  226. package/templates/vue/micro-frontends/qiankun/base/src/router/index.ts +27 -0
  227. package/templates/vue/micro-frontends/qiankun/base/src/stores/index.ts +8 -0
  228. package/templates/vue/micro-frontends/qiankun/base/tsconfig.app.json +33 -0
  229. package/templates/vue/micro-frontends/qiankun/base/tsconfig.base.json +25 -0
  230. package/templates/vue/micro-frontends/qiankun/base/tsconfig.json +12 -0
  231. package/templates/vue/micro-frontends/qiankun/base/tsconfig.node.json +14 -0
  232. package/templates/vue/micro-frontends/qiankun/base/vite/index.ts +19 -18
  233. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/browserslist +17 -0
  234. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/parser +17 -0
  235. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/rollup +17 -0
  236. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/sass +4 -4
  237. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/terser +4 -4
  238. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/vite +4 -4
  239. package/templates/vue/micro-frontends/qiankun/features/element-plus/package.json +4 -0
  240. package/templates/vue/micro-frontends/qiankun/features/element-plus/src/assets/styles/main.scss +0 -1
  241. package/templates/vue/micro-frontends/qiankun/features/element-plus/src/stores/modules/system.ts +1 -1
  242. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.app.json +33 -0
  243. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.base.json +25 -0
  244. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.json +12 -0
  245. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.node.json +14 -0
  246. package/templates/vue/micro-frontends/qiankun/features/element-plus/vite/features/element-plus.ts +13 -18
  247. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/sass +4 -4
  248. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/terser +4 -4
  249. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/vite +4 -4
  250. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/package.json +2 -1
  251. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/src/layouts/index.ts +26 -0
  252. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/src/stores/modules/system.ts +1 -1
  253. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.app.json +33 -0
  254. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.base.json +25 -0
  255. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.json +12 -0
  256. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.node.json +14 -0
  257. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/browserslist +17 -0
  258. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/parser +17 -0
  259. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/rollup +17 -0
  260. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/sass +4 -4
  261. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/terser +4 -4
  262. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/vite +4 -4
  263. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/package.json +4 -1
  264. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/src/stores/modules/system.ts +1 -1
  265. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.app.json +33 -0
  266. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.base.json +25 -0
  267. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.json +12 -0
  268. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.node.json +14 -0
  269. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/vite/features/pageRoutes.ts +15 -0
  270. package/dist/test.d.ts +0 -5
  271. package/dist/test.js +0 -508
  272. package/templates/common/base/src/utils/index.ts +0 -87
  273. /package/templates/vue/features/element-plus/src/assets/styles/{element.scss → element/index.scss} +0 -0
@@ -0,0 +1,33 @@
1
+ {
2
+ "extends": "./tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "lib": [
5
+ "DOM",
6
+ "ESNext"
7
+ ],
8
+ "types": [
9
+ "vite/client"
10
+ ],
11
+ "composite": true,
12
+ "baseUrl": ".",
13
+ "paths": {
14
+ "@/*": ["./src/*"]
15
+ }
16
+ },
17
+ "include": ["src"],
18
+ "vueCompilerOptions": {
19
+ "plugins": [
20
+ "@vue-macros/volar/define-models",
21
+ "@vue-macros/volar/define-slots",
22
+ "@vue-macros/volar/define-props",
23
+ "@vue-macros/volar/define-emits"
24
+ ]
25
+ },
26
+ "exclude": [
27
+ "dist",
28
+ "node_modules",
29
+ "cypress",
30
+ "vite",
31
+ "vite.config.*"
32
+ ]
33
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "lib": [
3
+ "DOM",
4
+ "ESNext"
5
+ ],
6
+ "compilerOptions": {
7
+ "target": "ESNext",
8
+ "module": "ESNext",
9
+ "moduleResolution": "Bundler",
10
+ "jsx": "preserve",
11
+ "resolveJsonModule": true,
12
+ "allowJs": true,
13
+ "strict": true,
14
+ "strictNullChecks": true,
15
+ "noUnusedLocals": true,
16
+ "noEmit": false,
17
+ "esModuleInterop": true,
18
+ "forceConsistentCasingInFileNames": true,
19
+ "isolatedModules": true,
20
+ "skipLibCheck": true,
21
+ "allowImportingTsExtensions": false,
22
+ "composite": true,
23
+ "declaration": true
24
+ }
25
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "./tsconfig.base.json",
3
+ "files": [],
4
+ "references": [
5
+ {
6
+ "path": "./tsconfig.app.json"
7
+ },
8
+ {
9
+ "path": "./tsconfig.node.json"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "./tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "noEmit": false,
5
+ "allowImportingTsExtensions": true,
6
+ "rewriteRelativeImportExtensions": true,
7
+ "types": ["node"],
8
+ "composite": true
9
+ },
10
+ "include": [
11
+ "vite",
12
+ "vite.config.*"
13
+ ]
14
+ }
@@ -4,36 +4,30 @@
4
4
 
5
5
  import process from 'node:process'
6
6
  import { sentryVitePlugin } from '@sentry/vite-plugin'
7
-
8
- /**
9
- * Vite feature 配置上下文
10
- */
11
- interface ViteFeatureContext {
12
- viteEnv: Record<string, any>
13
- mode: string
14
- appCode: string
15
- }
7
+ import type { ViteConfigType, ViteFeatureContext } from '@moluoxixi/vite-config'
16
8
 
17
9
  /**
18
10
  * 获取 Sentry Vite 配置
19
11
  * @param ctx - feature 配置上下文
20
12
  * @param ctx.viteEnv - Vite 环境变量
21
13
  * @param ctx.mode - 构建模式
22
- * @returns Vite UserConfig
14
+ * @returns Config 配置(与 ViteConfigType 结构一致)
23
15
  */
24
- export default ({ viteEnv, mode }: ViteFeatureContext) => ({
25
- plugins: [
26
- viteEnv.VITE_SENTRY && mode === 'production' && sentryVitePlugin({
27
- authToken: process.env.SENTRY_AUTH_TOKEN,
28
- org: 'f1f562b9b82f',
29
- project: 'javascript-vue',
30
- sourcemaps: {
31
- assets: './dist/**',
32
- ignore: ['node_modules'],
33
- },
34
- release: {
35
- name: viteEnv.VITE_APP_VERSION || 'unknown',
36
- },
37
- }),
38
- ].filter(Boolean),
16
+ export default ({ viteEnv, mode }: ViteFeatureContext): Partial<ViteConfigType> => ({
17
+ viteConfig: {
18
+ plugins: [
19
+ viteEnv.VITE_SENTRY && mode === 'production' && sentryVitePlugin({
20
+ authToken: process.env.SENTRY_AUTH_TOKEN,
21
+ org: 'f1f562b9b82f',
22
+ project: 'javascript-vue',
23
+ sourcemaps: {
24
+ assets: './dist/**',
25
+ ignore: ['node_modules'],
26
+ },
27
+ release: {
28
+ name: viteEnv.VITE_APP_VERSION || 'unknown',
29
+ },
30
+ }),
31
+ ].filter(Boolean),
32
+ },
39
33
  })
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/browserslist@4.28.1/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
17
+ fi
@@ -11,7 +11,7 @@ else
11
11
  export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/jiti@2.6.1/node_modules/jiti/lib/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/jiti@2.6.1/node_modules/jiti/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/jiti@2.6.1/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
- exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/jiti@2.6.1/node_modules/jiti/lib/jiti-cli.mjs" "$@"
14
+ exec "$basedir/node" "$basedir/../jiti/lib/jiti-cli.mjs" "$@"
15
15
  else
16
- exec node "$basedir/../../../../../../../node_modules/.pnpm/jiti@2.6.1/node_modules/jiti/lib/jiti-cli.mjs" "$@"
16
+ exec node "$basedir/../jiti/lib/jiti-cli.mjs" "$@"
17
17
  fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/@babel+parser@7.28.6/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/bin/babel-parser.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/@babel+parser@7.28.6/node_modules/@babel/parser/bin/babel-parser.js" "$@"
17
+ fi
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
+ esac
7
+
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/dist/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/dist/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/dist/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/dist/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/rollup@4.57.0/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/dist/bin/rollup" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/rollup@4.57.0/node_modules/rollup/dist/bin/rollup" "$@"
17
+ fi
@@ -6,12 +6,12 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.2/node_modules/sass/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.2/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.3/node_modules/sass/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.3/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.2/node_modules/sass/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.2/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.3/node_modules/sass/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/sass@1.97.3/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
- exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/sass@1.97.2/node_modules/sass/sass.js" "$@"
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/sass@1.97.3/node_modules/sass/sass.js" "$@"
15
15
  else
16
- exec node "$basedir/../../../../../../../node_modules/.pnpm/sass@1.97.2/node_modules/sass/sass.js" "$@"
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/sass@1.97.3/node_modules/sass/sass.js" "$@"
17
17
  fi
@@ -6,12 +6,12 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.44.1/node_modules/terser/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.44.1/node_modules/terser/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.44.1/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.46.0/node_modules/terser/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.46.0/node_modules/terser/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.46.0/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.44.1/node_modules/terser/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.44.1/node_modules/terser/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.44.1/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.46.0/node_modules/terser/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.46.0/node_modules/terser/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/terser@5.46.0/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
- exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/terser@5.44.1/node_modules/terser/bin/terser" "$@"
14
+ exec "$basedir/node" "$basedir/../../../../../../../node_modules/.pnpm/terser@5.46.0/node_modules/terser/bin/terser" "$@"
15
15
  else
16
- exec node "$basedir/../../../../../../../node_modules/.pnpm/terser@5.44.1/node_modules/terser/bin/terser" "$@"
16
+ exec node "$basedir/../../../../../../../node_modules/.pnpm/terser@5.46.0/node_modules/terser/bin/terser" "$@"
17
17
  fi
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@7.1.11_@types+node@22.19.5_jiti@2.6.1_lightningcss@1.30.1_sass-embedded@1.97.2_sas_49350b20785856445dede0a62779c9d5/node_modules/vite/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@7.1.11_@types+node@22.19.5_jiti@2.6.1_lightningcss@1.30.1_sass-embedded@1.97.2_sas_49350b20785856445dede0a62779c9d5/node_modules/vite/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@7.1.11_@types+node@22.19.5_jiti@2.6.1_lightningcss@1.30.1_sass-embedded@1.97.2_sas_49350b20785856445dede0a62779c9d5/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@6.2.4_@types+node@22.19.7_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.97.3_sass_8b0a8c2ec890dd5cbc7f2dee3cda2529/node_modules/vite/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@6.2.4_@types+node@22.19.7_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.97.3_sass_8b0a8c2ec890dd5cbc7f2dee3cda2529/node_modules/vite/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@6.2.4_@types+node@22.19.7_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.97.3_sass_8b0a8c2ec890dd5cbc7f2dee3cda2529/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@7.1.11_@types+node@22.19.5_jiti@2.6.1_lightningcss@1.30.1_sass-embedded@1.97.2_sas_49350b20785856445dede0a62779c9d5/node_modules/vite/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@7.1.11_@types+node@22.19.5_jiti@2.6.1_lightningcss@1.30.1_sass-embedded@1.97.2_sas_49350b20785856445dede0a62779c9d5/node_modules/vite/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@7.1.11_@types+node@22.19.5_jiti@2.6.1_lightningcss@1.30.1_sass-embedded@1.97.2_sas_49350b20785856445dede0a62779c9d5/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@6.2.4_@types+node@22.19.7_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.97.3_sass_8b0a8c2ec890dd5cbc7f2dee3cda2529/node_modules/vite/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@6.2.4_@types+node@22.19.7_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.97.3_sass_8b0a8c2ec890dd5cbc7f2dee3cda2529/node_modules/vite/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vite@6.2.4_@types+node@22.19.7_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.97.3_sass_8b0a8c2ec890dd5cbc7f2dee3cda2529/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
@@ -1,8 +1,13 @@
1
1
  {
2
2
  "dependencies": {
3
+ "vue": "^3.5.13",
4
+ "vue-router": "^4.5.0",
3
5
  "vite-plugin-qiankun": "^1.0.15"
4
6
  },
5
7
  "devDependencies": {
6
- "vite": "7.1.11"
8
+ "@moluoxixi/vite-config": "latest",
9
+ "@vue-macros/volar": "^3.0.0-beta.15",
10
+ "jiti": "^2.4.2",
11
+ "vite": "6.2.4"
7
12
  }
8
13
  }
@@ -0,0 +1,13 @@
1
+ <template>
2
+ <RouterView />
3
+ </template>
4
+
5
+ <script setup lang="ts">
6
+ /**
7
+ * 根组件
8
+ */
9
+ import { RouterView } from 'vue-router'
10
+ </script>
11
+
12
+ <style scoped>
13
+ </style>
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 字体配置
3
+ * 自定义字体导入
4
+ */
5
+
6
+ /* 可在此添加自定义字体 */
@@ -0,0 +1,33 @@
1
+ :root {
2
+ // 这里定义变量
3
+ /* 文字颜色 */
4
+ --text-color: #2a3651;
5
+ }
6
+
7
+ ::-webkit-scrollbar {
8
+ width: 6px;
9
+ height: 6px;
10
+ }
11
+
12
+ ::-webkit-scrollbar-thumb {
13
+ background-color: #dddee0; /* 设置滑块的颜色 */
14
+ border-radius: 5px; /* 设置滑块的圆角 */
15
+ }
16
+
17
+ body {
18
+ color: var(--text-color);
19
+ transition:
20
+ color 0.5s,
21
+ background-color 0.5s;
22
+ font-size: 14px;
23
+ font-family: SourceHanSans-Regular, serif;
24
+ }
25
+
26
+ #app {
27
+ margin: 0;
28
+ padding: 0;
29
+ font-weight: normal;
30
+ background: #f1f2f4;
31
+ height: 100%;
32
+ overflow-y: auto;
33
+ }
@@ -0,0 +1,20 @@
1
+ .text-bold {
2
+ font-family: SourceHanSans-Semibold, serif;
3
+ font-weight: bold;
4
+ }
5
+
6
+ .text-medium {
7
+ font-family: SourceHanSans-Medium, serif;
8
+ }
9
+
10
+ .text-regular {
11
+ font-family: SourceHanSans-Regular, serif;
12
+ }
13
+
14
+ .text-light {
15
+ font-family: SourceHanSans-Light, serif;
16
+ }
17
+
18
+ .box-shadow {
19
+ box-shadow: 0 2px 10px 0 rgb(52 81 212 / 20%);
20
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 主样式文件
3
+ * 导入所有样式
4
+ */
5
+
6
+ @use './base.scss';
7
+ @use './custom.scss';
8
+ @use './tailwind.scss';
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * 自定义指令
3
+ * 全局指令注册
4
+ */
5
+
6
+ import type { App } from 'vue'
7
+
8
+ /**
9
+ * 注册全局指令
10
+ * @param app Vue 应用实例
11
+ */
12
+ export default function directives(app: App): void {
13
+ // v-focus 自动聚焦指令
14
+ app.directive('focus', {
15
+ mounted(el: HTMLElement) {
16
+ el.focus()
17
+ },
18
+ })
19
+
20
+ // v-loading 加载状态指令
21
+ app.directive('loading', {
22
+ mounted(el: HTMLElement, binding) {
23
+ if (binding.value) {
24
+ el.classList.add('is-loading')
25
+ }
26
+ },
27
+ updated(el: HTMLElement, binding) {
28
+ if (binding.value) {
29
+ el.classList.add('is-loading')
30
+ }
31
+ else {
32
+ el.classList.remove('is-loading')
33
+ }
34
+ },
35
+ })
36
+ }
@@ -7,13 +7,13 @@ import { qiankunWindow, renderWithQiankun } from 'vite-plugin-qiankun/dist/helpe
7
7
  import { createApp } from 'vue'
8
8
  import directives from '@/directives'
9
9
  import { store } from '@/stores'
10
- import App from './App.vue'
11
- import getRouter from './router'
10
+ import App from '@/App.vue'
11
+ import getRouter from '@/router'
12
12
  import { setupFeatures } from './main/index'
13
13
 
14
14
  // Import styles
15
- import '@/assets/styles/main.scss'
16
- import '@/assets/fonts/index.css'
15
+ import './assets/styles/main.scss'
16
+ import './assets/fonts/index.css'
17
17
 
18
18
  let app: ReturnType<typeof createApp> | null = null
19
19
 
@@ -37,7 +37,7 @@ async function render(props: Record<string, unknown> = {}): Promise<void> {
37
37
 
38
38
  if (container) {
39
39
  const root = container.querySelector('#app')
40
- app.mount(root)
40
+ app.mount(root!)
41
41
  }
42
42
  else {
43
43
  app.mount('#app')
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 默认路由配置(最小实现)
3
+ * 此文件会被 router feature (manualRoutes/pageRoutes) 覆盖
4
+ */
5
+
6
+ import { createRouter, createWebHistory } from 'vue-router'
7
+
8
+ /**
9
+ * 创建路由实例
10
+ * @param props - 可选的渲染属性(用于 qiankun)
11
+ * @returns 路由实例
12
+ */
13
+ function getRouter(props?: Record<string, unknown>) {
14
+ const { activeRule: base = import.meta.env.VITE_APP_CODE } = props || {}
15
+ return createRouter({
16
+ history: createWebHistory(base),
17
+ routes: [
18
+ {
19
+ path: '/',
20
+ name: 'home',
21
+ component: () => import('@/App.vue'),
22
+ },
23
+ ],
24
+ })
25
+ }
26
+
27
+ export default getRouter
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Store 导出
3
+ * 注意:具体的 store 实例在 pinia feature 中创建
4
+ * 此文件提供一个基础的导出,会被 pinia feature 覆盖
5
+ */
6
+
7
+ // 基础实现,会被 pinia feature 覆盖
8
+ export const store = null as any
@@ -0,0 +1,33 @@
1
+ {
2
+ "extends": "./tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "lib": [
5
+ "DOM",
6
+ "ESNext"
7
+ ],
8
+ "types": [
9
+ "vite/client"
10
+ ],
11
+ "composite": true,
12
+ "baseUrl": ".",
13
+ "paths": {
14
+ "@/*": ["./src/*"]
15
+ }
16
+ },
17
+ "include": ["src"],
18
+ "vueCompilerOptions": {
19
+ "plugins": [
20
+ "@vue-macros/volar/define-models",
21
+ "@vue-macros/volar/define-slots",
22
+ "@vue-macros/volar/define-props",
23
+ "@vue-macros/volar/define-emits"
24
+ ]
25
+ },
26
+ "exclude": [
27
+ "dist",
28
+ "node_modules",
29
+ "cypress",
30
+ "vite",
31
+ "vite.config.*"
32
+ ]
33
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "lib": [
3
+ "DOM",
4
+ "ESNext"
5
+ ],
6
+ "compilerOptions": {
7
+ "target": "ESNext",
8
+ "module": "ESNext",
9
+ "moduleResolution": "Bundler",
10
+ "jsx": "preserve",
11
+ "resolveJsonModule": true,
12
+ "allowJs": true,
13
+ "strict": true,
14
+ "strictNullChecks": true,
15
+ "noUnusedLocals": true,
16
+ "noEmit": false,
17
+ "esModuleInterop": true,
18
+ "forceConsistentCasingInFileNames": true,
19
+ "isolatedModules": true,
20
+ "skipLibCheck": true,
21
+ "allowImportingTsExtensions": false,
22
+ "composite": true,
23
+ "declaration": true
24
+ }
25
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "./tsconfig.base.json",
3
+ "files": [],
4
+ "references": [
5
+ {
6
+ "path": "./tsconfig.app.json"
7
+ },
8
+ {
9
+ "path": "./tsconfig.node.json"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "./tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "noEmit": false,
5
+ "allowImportingTsExtensions": true,
6
+ "rewriteRelativeImportExtensions": true,
7
+ "types": ["node"],
8
+ "composite": true
9
+ },
10
+ "include": [
11
+ "vite",
12
+ "vite.config.*"
13
+ ]
14
+ }
@@ -3,29 +3,18 @@ import path from 'node:path'
3
3
  import { fileURLToPath } from 'node:url'
4
4
  import { mergeConfig } from 'vite'
5
5
  import type { UserConfig } from 'vite'
6
+ import type { ViteConfigType, ViteFeatureContext } from '@moluoxixi/vite-config'
6
7
  import { createJiti } from 'jiti'
7
8
 
8
9
  const __dirname = path.dirname(fileURLToPath(import.meta.url))
9
10
  const _require = createJiti(import.meta.url, { interopDefault: true })
10
11
 
11
- /**
12
- * Vite feature 配置上下文
13
- */
14
- export interface ViteFeatureContext {
15
- /** Vite 环境变量 */
16
- viteEnv: Record<string, any>
17
- /** 构建模式 */
18
- mode: string
19
- /** 应用代码 */
20
- appCode: string
21
- }
22
-
23
12
  /**
24
13
  * 加载所有 feature 的 Vite 配置
25
14
  * @param ctx - feature 配置上下文
26
- * @returns 合并后的 UserConfig
15
+ * @returns 合并后的 Config 配置(与 ViteConfigType 结构一致)
27
16
  */
28
- export function loadFeatureConfigs(ctx: ViteFeatureContext): UserConfig {
17
+ export function loadFeatureConfigs(ctx: ViteFeatureContext): Partial<ViteConfigType> {
29
18
  const featuresDir = path.resolve(__dirname, 'features')
30
19
 
31
20
  if (!fs.existsSync(featuresDir)) {
@@ -33,15 +22,22 @@ export function loadFeatureConfigs(ctx: ViteFeatureContext): UserConfig {
33
22
  }
34
23
 
35
24
  const featureFiles = fs.readdirSync(featuresDir).filter(f => f.endsWith('.ts'))
36
- const configs: UserConfig[] = []
25
+ const viteConfigs: UserConfig[] = []
26
+ let mergedConfig: Partial<ViteConfigType> = {}
37
27
 
38
28
  for (const file of featureFiles) {
39
29
  try {
40
30
  const filePath = path.resolve(featuresDir, file)
41
31
  const mod = _require(filePath)
42
- const config = mod.default(ctx)
32
+ const config = mod.default(ctx) as Partial<ViteConfigType> | undefined
43
33
  if (config) {
44
- configs.push(config)
34
+ // 提取 viteConfig 单独合并
35
+ const { viteConfig, ...restConfig } = config
36
+ if (viteConfig && typeof viteConfig !== 'function') {
37
+ viteConfigs.push(viteConfig)
38
+ }
39
+ // 合并其他配置(pageRoutes, autoComponent 等)
40
+ mergedConfig = { ...mergedConfig, ...restConfig }
45
41
  }
46
42
  }
47
43
  catch (e) {
@@ -49,5 +45,10 @@ export function loadFeatureConfigs(ctx: ViteFeatureContext): UserConfig {
49
45
  }
50
46
  }
51
47
 
52
- return configs.reduce((acc, cfg) => mergeConfig(acc, cfg), {} as UserConfig)
48
+ // 合并所有 viteConfig
49
+ if (viteConfigs.length > 0) {
50
+ mergedConfig.viteConfig = viteConfigs.reduce((acc, cfg) => mergeConfig(acc, cfg), {} as UserConfig)
51
+ }
52
+
53
+ return mergedConfig
53
54
  }