@moluoxixi/create-app 2.0.435 → 2.0.437

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 (250) 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/browserslist +17 -0
  19. package/templates/common/base/node_modules/.bin/parser +17 -0
  20. package/templates/common/base/node_modules/.bin/rollup +17 -0
  21. package/templates/common/base/node_modules/.bin/sass +2 -2
  22. package/templates/common/base/node_modules/.bin/terser +17 -0
  23. package/templates/common/base/node_modules/.bin/vite +2 -2
  24. package/templates/common/base/node_modules/.bin/yaml +17 -0
  25. package/templates/common/base/package.json +2 -4
  26. package/templates/common/base/scripts/build.mts +15 -10
  27. package/templates/common/base/src/apis/request.ts +23 -32
  28. package/templates/common/base/src/apis/services/example.ts +2 -2
  29. package/templates/common/base/src/apis/services/user.ts +2 -2
  30. package/templates/common/base/tsconfig.app.json +25 -0
  31. package/templates/common/base/tsconfig.base.json +17 -0
  32. package/templates/common/base/tsconfig.json +11 -0
  33. package/templates/common/base/tsconfig.node.json +14 -0
  34. package/templates/common/base/vite.config.ts +5 -2
  35. package/templates/common/features/eslint/node_modules/.bin/browserslist +17 -0
  36. package/templates/common/features/eslint/node_modules/.bin/jiti +17 -0
  37. package/templates/common/features/eslint/node_modules/.bin/sass +17 -0
  38. package/templates/common/features/eslint/node_modules/.bin/terser +17 -0
  39. package/templates/common/features/eslint/node_modules/.bin/tsc +17 -0
  40. package/templates/common/features/eslint/node_modules/.bin/tsserver +17 -0
  41. package/templates/common/features/eslint/node_modules/.bin/tsx +17 -0
  42. package/templates/common/features/eslint/node_modules/.bin/vitest +17 -0
  43. package/templates/common/features/eslint/node_modules/.bin/yaml +17 -0
  44. package/templates/common/features/eslint/tsconfig.base.json +17 -0
  45. package/templates/common/features/eslint/tsconfig.json +8 -0
  46. package/templates/common/features/eslint/tsconfig.node.json +13 -0
  47. package/templates/common/features/husky/.husky/pre-commit +1 -1
  48. package/templates/common/features/husky/node_modules/.bin/commitizen +2 -2
  49. package/templates/common/features/husky/node_modules/.bin/commitlint +2 -2
  50. package/templates/common/features/husky/node_modules/.bin/cz +2 -2
  51. package/templates/common/features/husky/node_modules/.bin/git-cz +2 -2
  52. package/templates/common/features/husky/tsconfig.base.json +17 -0
  53. package/templates/common/features/husky/tsconfig.json +8 -0
  54. package/templates/common/features/husky/tsconfig.node.json +13 -0
  55. package/templates/react/base/node_modules/.bin/jiti +17 -0
  56. package/templates/react/base/node_modules/.bin/sass +17 -0
  57. package/templates/react/base/node_modules/.bin/terser +17 -0
  58. package/templates/react/base/node_modules/.bin/tsx +17 -0
  59. package/templates/react/base/node_modules/.bin/vite +17 -0
  60. package/templates/react/base/node_modules/.bin/yaml +17 -0
  61. package/templates/react/base/package.json +2 -1
  62. package/templates/react/base/src/main.tsx +1 -1
  63. package/templates/react/base/src/router/index.tsx +26 -0
  64. package/templates/react/base/src/utils/common.ts +126 -0
  65. package/templates/react/base/src/utils/index.ts +7 -0
  66. package/templates/react/base/tsconfig.app.json +13 -5
  67. package/templates/react/base/tsconfig.node.json +6 -7
  68. package/templates/react/features/ant-design/tsconfig.app.json +25 -0
  69. package/templates/react/features/ant-design/tsconfig.base.json +22 -0
  70. package/templates/react/features/ant-design/tsconfig.json +11 -0
  71. package/templates/react/features/ant-design/tsconfig.node.json +14 -0
  72. package/templates/react/features/i18n/node_modules/.bin/tsc +17 -0
  73. package/templates/react/features/i18n/node_modules/.bin/tsserver +17 -0
  74. package/templates/react/features/i18n/tsconfig.app.json +25 -0
  75. package/templates/react/features/i18n/tsconfig.base.json +22 -0
  76. package/templates/react/features/i18n/tsconfig.json +11 -0
  77. package/templates/react/features/i18n/tsconfig.node.json +14 -0
  78. package/templates/react/features/manualRoutes/tsconfig.app.json +25 -0
  79. package/templates/react/features/manualRoutes/tsconfig.base.json +26 -0
  80. package/templates/react/features/manualRoutes/tsconfig.json +11 -0
  81. package/templates/react/features/manualRoutes/tsconfig.node.json +14 -0
  82. package/templates/react/features/pageRoutes/tsconfig.app.json +25 -0
  83. package/templates/react/features/pageRoutes/tsconfig.base.json +26 -0
  84. package/templates/react/features/pageRoutes/tsconfig.json +11 -0
  85. package/templates/react/features/pageRoutes/tsconfig.node.json +14 -0
  86. package/templates/react/features/sentry/tsconfig.app.json +25 -0
  87. package/templates/react/features/sentry/tsconfig.base.json +22 -0
  88. package/templates/react/features/sentry/tsconfig.json +11 -0
  89. package/templates/react/features/sentry/tsconfig.node.json +14 -0
  90. package/templates/react/features/zustand/tsconfig.app.json +25 -0
  91. package/templates/react/features/zustand/tsconfig.base.json +26 -0
  92. package/templates/react/features/zustand/tsconfig.json +11 -0
  93. package/templates/react/features/zustand/tsconfig.node.json +14 -0
  94. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/jiti +17 -0
  95. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/sass +17 -0
  96. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/terser +17 -0
  97. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/tsc +17 -0
  98. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/tsserver +17 -0
  99. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/tsx +17 -0
  100. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/vite +2 -2
  101. package/templates/react/micro-frontends/qiankun/base/node_modules/.bin/yaml +17 -0
  102. package/templates/react/micro-frontends/qiankun/base/package.json +1 -1
  103. package/templates/react/micro-frontends/qiankun/base/src/main.tsx +3 -3
  104. package/templates/react/micro-frontends/qiankun/base/tsconfig.app.json +25 -0
  105. package/templates/react/micro-frontends/qiankun/base/tsconfig.base.json +26 -0
  106. package/templates/react/micro-frontends/qiankun/base/tsconfig.json +11 -0
  107. package/templates/react/micro-frontends/qiankun/base/tsconfig.node.json +14 -0
  108. package/templates/vue/base/node_modules/.bin/tsc +17 -0
  109. package/templates/vue/base/node_modules/.bin/tsserver +17 -0
  110. package/templates/vue/base/node_modules/.bin/vue-tsc +2 -2
  111. package/templates/vue/base/package.json +3 -2
  112. package/templates/vue/base/src/assets/fonts/index.css +6 -0
  113. package/templates/vue/base/src/assets/styles/base.scss +33 -0
  114. package/templates/vue/base/src/assets/styles/custom.scss +20 -0
  115. package/templates/vue/base/src/assets/styles/main.scss +8 -0
  116. package/templates/vue/base/src/assets/styles/tailwind.scss +3 -0
  117. package/templates/vue/base/src/main.ts +3 -3
  118. package/templates/vue/base/src/router/index.ts +25 -0
  119. package/templates/vue/base/src/utils/common.ts +126 -0
  120. package/templates/vue/base/src/utils/index.ts +4 -0
  121. package/templates/vue/base/tsconfig.app.json +10 -3
  122. package/templates/vue/base/tsconfig.base.json +2 -6
  123. package/templates/vue/base/tsconfig.json +1 -0
  124. package/templates/vue/base/tsconfig.node.json +1 -2
  125. package/templates/vue/features/ant-design-vue/node_modules/.bin/tsc +17 -0
  126. package/templates/vue/features/ant-design-vue/node_modules/.bin/tsserver +17 -0
  127. package/templates/vue/features/ant-design-vue/tsconfig.app.json +33 -0
  128. package/templates/vue/features/ant-design-vue/tsconfig.base.json +25 -0
  129. package/templates/vue/features/ant-design-vue/tsconfig.json +12 -0
  130. package/templates/vue/features/ant-design-vue/tsconfig.node.json +14 -0
  131. package/templates/vue/features/element-plus/node_modules/.bin/tsc +17 -0
  132. package/templates/vue/features/element-plus/node_modules/.bin/tsserver +17 -0
  133. package/templates/vue/features/element-plus/package.json +3 -0
  134. package/templates/vue/features/element-plus/src/assets/styles/main.scss +0 -1
  135. package/templates/vue/features/element-plus/src/layouts/element.vue +1 -1
  136. package/templates/vue/features/element-plus/src/stores/modules/system.ts +1 -1
  137. package/templates/vue/features/element-plus/tsconfig.app.json +33 -0
  138. package/templates/vue/features/element-plus/tsconfig.base.json +25 -0
  139. package/templates/vue/features/element-plus/tsconfig.json +12 -0
  140. package/templates/vue/features/element-plus/tsconfig.node.json +14 -0
  141. package/templates/vue/features/i18n/node_modules/.bin/tsc +17 -0
  142. package/templates/vue/features/i18n/node_modules/.bin/tsserver +17 -0
  143. package/templates/vue/features/i18n/tsconfig.app.json +33 -0
  144. package/templates/vue/features/i18n/tsconfig.base.json +25 -0
  145. package/templates/vue/features/i18n/tsconfig.json +12 -0
  146. package/templates/vue/features/i18n/tsconfig.node.json +14 -0
  147. package/templates/vue/features/manualRoutes/node_modules/.bin/tsc +17 -0
  148. package/templates/vue/features/manualRoutes/node_modules/.bin/tsserver +17 -0
  149. package/templates/vue/features/manualRoutes/package.json +2 -1
  150. package/templates/vue/features/manualRoutes/src/layouts/index.ts +26 -0
  151. package/templates/vue/features/manualRoutes/src/router/index.ts +1 -1
  152. package/templates/vue/features/manualRoutes/src/stores/modules/system.ts +1 -1
  153. package/templates/vue/features/manualRoutes/tsconfig.app.json +33 -0
  154. package/templates/vue/features/manualRoutes/tsconfig.base.json +25 -0
  155. package/templates/vue/features/manualRoutes/tsconfig.json +12 -0
  156. package/templates/vue/features/manualRoutes/tsconfig.node.json +14 -0
  157. package/templates/vue/features/pageRoutes/node_modules/.bin/tsc +17 -0
  158. package/templates/vue/features/pageRoutes/node_modules/.bin/tsserver +17 -0
  159. package/templates/vue/features/pageRoutes/package.json +2 -1
  160. package/templates/vue/features/pageRoutes/src/layouts/index.ts +26 -0
  161. package/templates/vue/features/pageRoutes/src/stores/modules/system.ts +1 -1
  162. package/templates/vue/features/pageRoutes/tsconfig.app.json +33 -0
  163. package/templates/vue/features/pageRoutes/tsconfig.base.json +25 -0
  164. package/templates/vue/features/pageRoutes/tsconfig.json +12 -0
  165. package/templates/vue/features/pageRoutes/tsconfig.node.json +14 -0
  166. package/templates/vue/features/pinia/node_modules/.bin/tsc +17 -0
  167. package/templates/vue/features/pinia/node_modules/.bin/tsserver +17 -0
  168. package/templates/vue/features/pinia/package.json +3 -0
  169. package/templates/vue/features/pinia/src/stores/modules/system.ts +1 -1
  170. package/templates/vue/features/pinia/tsconfig.app.json +33 -0
  171. package/templates/vue/features/pinia/tsconfig.base.json +25 -0
  172. package/templates/vue/features/pinia/tsconfig.json +12 -0
  173. package/templates/vue/features/pinia/tsconfig.node.json +14 -0
  174. package/templates/vue/features/sentry/node_modules/.bin/tsc +17 -0
  175. package/templates/vue/features/sentry/node_modules/.bin/tsserver +17 -0
  176. package/templates/vue/features/sentry/tsconfig.app.json +33 -0
  177. package/templates/vue/features/sentry/tsconfig.base.json +25 -0
  178. package/templates/vue/features/sentry/tsconfig.json +12 -0
  179. package/templates/vue/features/sentry/tsconfig.node.json +14 -0
  180. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/jiti +17 -0
  181. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/sass +17 -0
  182. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/terser +17 -0
  183. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/tsc +17 -0
  184. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/tsserver +17 -0
  185. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/tsx +17 -0
  186. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/vite +2 -2
  187. package/templates/vue/micro-frontends/qiankun/base/node_modules/.bin/yaml +17 -0
  188. package/templates/vue/micro-frontends/qiankun/base/package.json +5 -1
  189. package/templates/vue/micro-frontends/qiankun/base/src/App.vue +13 -0
  190. package/templates/vue/micro-frontends/qiankun/base/src/assets/fonts/index.css +6 -0
  191. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/base.scss +33 -0
  192. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/custom.scss +20 -0
  193. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/main.scss +8 -0
  194. package/templates/vue/micro-frontends/qiankun/base/src/assets/styles/tailwind.scss +3 -0
  195. package/templates/vue/micro-frontends/qiankun/base/src/directives/index.ts +36 -0
  196. package/templates/vue/micro-frontends/qiankun/base/src/main.ts +5 -5
  197. package/templates/vue/micro-frontends/qiankun/base/src/router/index.ts +27 -0
  198. package/templates/vue/micro-frontends/qiankun/base/src/stores/index.ts +8 -0
  199. package/templates/vue/micro-frontends/qiankun/base/tsconfig.app.json +33 -0
  200. package/templates/vue/micro-frontends/qiankun/base/tsconfig.base.json +25 -0
  201. package/templates/vue/micro-frontends/qiankun/base/tsconfig.json +12 -0
  202. package/templates/vue/micro-frontends/qiankun/base/tsconfig.node.json +14 -0
  203. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/jiti +17 -0
  204. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/sass +17 -0
  205. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/terser +17 -0
  206. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/tsc +17 -0
  207. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/tsserver +17 -0
  208. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/tsx +17 -0
  209. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/vite +17 -0
  210. package/templates/vue/micro-frontends/qiankun/features/element-plus/node_modules/.bin/yaml +17 -0
  211. package/templates/vue/micro-frontends/qiankun/features/element-plus/package.json +3 -0
  212. package/templates/vue/micro-frontends/qiankun/features/element-plus/src/assets/styles/main.scss +0 -1
  213. package/templates/vue/micro-frontends/qiankun/features/element-plus/src/stores/modules/system.ts +1 -1
  214. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.app.json +33 -0
  215. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.base.json +25 -0
  216. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.json +12 -0
  217. package/templates/vue/micro-frontends/qiankun/features/element-plus/tsconfig.node.json +14 -0
  218. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/jiti +17 -0
  219. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/sass +17 -0
  220. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/terser +17 -0
  221. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/tsc +17 -0
  222. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/tsserver +17 -0
  223. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/tsx +17 -0
  224. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/vite +17 -0
  225. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/node_modules/.bin/yaml +17 -0
  226. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/package.json +2 -1
  227. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/src/layouts/index.ts +26 -0
  228. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/src/stores/modules/system.ts +1 -1
  229. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.app.json +33 -0
  230. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.base.json +25 -0
  231. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.json +12 -0
  232. package/templates/vue/micro-frontends/qiankun/features/manualRoutes/tsconfig.node.json +14 -0
  233. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/jiti +17 -0
  234. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/sass +17 -0
  235. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/terser +17 -0
  236. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/tsc +17 -0
  237. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/tsserver +17 -0
  238. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/tsx +17 -0
  239. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/vite +17 -0
  240. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/node_modules/.bin/yaml +17 -0
  241. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/package.json +2 -1
  242. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/src/stores/modules/system.ts +1 -1
  243. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.app.json +33 -0
  244. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.base.json +25 -0
  245. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.json +12 -0
  246. package/templates/vue/micro-frontends/qiankun/features/pageRoutes/tsconfig.node.json +14 -0
  247. package/dist/test.d.ts +0 -5
  248. package/dist/test.js +0 -508
  249. package/templates/common/base/src/utils/index.ts +0 -87
  250. /package/templates/vue/features/element-plus/src/assets/styles/{element.scss → element/index.scss} +0 -0
@@ -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/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
+ else
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
+ fi
13
+ if [ -x "$basedir/node" ]; then
14
+ exec "$basedir/node" "$basedir/../../../../../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/vite.js" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../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/vite.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/yaml@2.8.2/node_modules/yaml/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/yaml@2.8.2/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/yaml@2.8.2/node_modules/yaml/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/yaml@2.8.2/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/yaml@2.8.2/node_modules/yaml/bin.mjs" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/bin.mjs" "$@"
17
+ fi
@@ -5,7 +5,8 @@
5
5
  },
6
6
  "dependencies": {
7
7
  "react": "^18.3.1",
8
- "react-dom": "^18.3.1"
8
+ "react-dom": "^18.3.1",
9
+ "react-router-dom": "^7.1.3"
9
10
  },
10
11
  "devDependencies": {
11
12
  "@types/react": "^18.3.18",
@@ -7,7 +7,7 @@ import React from 'react'
7
7
  import ReactDOM from 'react-dom/client'
8
8
  import { RouterProvider } from 'react-router-dom'
9
9
  import { createRouter } from '@/router'
10
- import { setupFeatures } from './main/index'
10
+ import { setupFeatures } from '@/main/index'
11
11
 
12
12
  // Import styles
13
13
  import '@/assets/styles/main.scss'
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 默认路由配置(最小实现)
3
+ * 此文件会被 router feature (manualRoutes/pageRoutes) 覆盖
4
+ */
5
+
6
+ import { createBrowserRouter } from 'react-router-dom'
7
+ import App from '@/App'
8
+
9
+ interface RouterConfig {
10
+ historyMode?: 'hash' | 'history'
11
+ basename?: string
12
+ }
13
+
14
+ /**
15
+ * 创建路由实例
16
+ * @param _config 路由配置(默认实现中未使用)
17
+ * @returns 路由实例
18
+ */
19
+ export function createRouter(_config: RouterConfig = {}) {
20
+ return createBrowserRouter([
21
+ {
22
+ path: '/',
23
+ element: <App />,
24
+ },
25
+ ])
26
+ }
@@ -0,0 +1,126 @@
1
+ /**
2
+ * 通用工具函数
3
+ * 常用工具方法
4
+ */
5
+
6
+ /**
7
+ * 延迟执行
8
+ * @param ms 延迟毫秒数
9
+ * @returns Promise,在指定时间后 resolve
10
+ */
11
+ export function sleep(ms: number): Promise<void> {
12
+ return new Promise(resolve => setTimeout(resolve, ms))
13
+ }
14
+
15
+ /**
16
+ * 深拷贝
17
+ * @param obj 要拷贝的对象
18
+ * @returns 深拷贝后的新对象
19
+ */
20
+ export function deepClone<T>(obj: T, visited = new WeakMap<object, unknown>()): T {
21
+ // 处理基本类型、null 和函数
22
+ if (obj === null || typeof obj !== 'object') {
23
+ return obj
24
+ }
25
+
26
+ // 处理循环引用
27
+ if (visited.has(obj as object)) {
28
+ return visited.get(obj as object) as T
29
+ }
30
+
31
+ // 处理 Date
32
+ if (obj instanceof Date) {
33
+ const cloned = new Date(obj.getTime()) as T
34
+ visited.set(obj as object, cloned)
35
+ return cloned
36
+ }
37
+
38
+ // 处理 RegExp
39
+ if (obj instanceof RegExp) {
40
+ const cloned = new RegExp(obj.source, obj.flags) as T
41
+ visited.set(obj as object, cloned)
42
+ return cloned
43
+ }
44
+
45
+ // 处理 Map
46
+ if (obj instanceof Map) {
47
+ const clonedMap = new Map()
48
+ visited.set(obj as object, clonedMap)
49
+ obj.forEach((value, key) => {
50
+ clonedMap.set(deepClone(key, visited), deepClone(value, visited))
51
+ })
52
+ return clonedMap as T
53
+ }
54
+
55
+ // 处理 Set
56
+ if (obj instanceof Set) {
57
+ const clonedSet = new Set()
58
+ visited.set(obj as object, clonedSet)
59
+ obj.forEach((value) => {
60
+ clonedSet.add(deepClone(value, visited))
61
+ })
62
+ return clonedSet as T
63
+ }
64
+
65
+ // 处理数组
66
+ if (Array.isArray(obj)) {
67
+ const clonedArray: unknown[] = []
68
+ visited.set(obj as object, clonedArray)
69
+ for (let i = 0; i < obj.length; i++) {
70
+ clonedArray[i] = deepClone(obj[i], visited)
71
+ }
72
+ return clonedArray as T
73
+ }
74
+
75
+ // 处理普通对象
76
+ const clonedObj = {} as T
77
+ visited.set(obj as object, clonedObj)
78
+ for (const key in obj) {
79
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
80
+ clonedObj[key] = deepClone(obj[key], visited)
81
+ }
82
+ }
83
+
84
+ return clonedObj
85
+ }
86
+
87
+ /**
88
+ * 防抖函数
89
+ * @param fn 要防抖的函数
90
+ * @param delay 延迟时间(毫秒)
91
+ * @returns 防抖后的函数
92
+ */
93
+ export function debounce<T extends (...args: unknown[]) => unknown>(
94
+ fn: T,
95
+ delay: number,
96
+ ): (...args: Parameters<T>) => void {
97
+ let timer: ReturnType<typeof setTimeout> | null = null
98
+ return function (this: unknown, ...args: Parameters<T>) {
99
+ if (timer) {
100
+ clearTimeout(timer)
101
+ }
102
+ timer = setTimeout(() => {
103
+ fn.apply(this, args)
104
+ }, delay)
105
+ }
106
+ }
107
+
108
+ /**
109
+ * 节流函数
110
+ * @param fn 要节流的函数
111
+ * @param delay 间隔时间(毫秒)
112
+ * @returns 节流后的函数
113
+ */
114
+ export function throttle<T extends (...args: unknown[]) => unknown>(
115
+ fn: T,
116
+ delay: number,
117
+ ): (...args: Parameters<T>) => void {
118
+ let lastTime = 0
119
+ return function (this: unknown, ...args: Parameters<T>) {
120
+ const now = Date.now()
121
+ if (now - lastTime >= delay) {
122
+ lastTime = now
123
+ fn.apply(this, args)
124
+ }
125
+ }
126
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 工具函数导出
3
+ * React 框架特定的工具函数实现
4
+ */
5
+
6
+ // 导出通用工具函数
7
+ export * from './common'
@@ -1,17 +1,25 @@
1
1
  {
2
2
  "extends": "./tsconfig.base.json",
3
3
  "compilerOptions": {
4
+ "lib": [
5
+ "DOM",
6
+ "ESNext"
7
+ ],
8
+ "types": [
9
+ "vite/client"
10
+ ],
4
11
  "composite": true,
5
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
6
12
  "baseUrl": ".",
7
13
  "paths": {
8
14
  "@/*": ["./src/*"]
9
15
  }
10
16
  },
11
- "include": [
17
+ "include": ["src"],
18
+ "exclude": [
19
+ "dist",
20
+ "node_modules",
21
+ "cypress",
12
22
  "vite",
13
- "env.d.ts",
14
- "src/**/*",
15
- "src/**/*.tsx"
23
+ "vite.config.*"
16
24
  ]
17
25
  }
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "extends": "./tsconfig.base.json",
3
3
  "compilerOptions": {
4
- "composite": true,
5
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
6
- "types": ["node"]
4
+ "noEmit": false,
5
+ "allowImportingTsExtensions": true,
6
+ "rewriteRelativeImportExtensions": true,
7
+ "types": ["node"],
8
+ "composite": true
7
9
  },
8
10
  "include": [
9
11
  "vite",
10
- "vite.config.*",
11
- "eslint.config.*",
12
- "commitlint.config.*",
13
- "scripts/**/*"
12
+ "vite.config.*"
14
13
  ]
15
14
  }
@@ -0,0 +1,25 @@
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
+ "exclude": [
19
+ "dist",
20
+ "node_modules",
21
+ "cypress",
22
+ "vite",
23
+ "vite.config.*"
24
+ ]
25
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowImportingTsExtensions": true,
10
+ "isolatedModules": true,
11
+ "moduleDetection": "force",
12
+ "noEmit": true,
13
+ "jsx": "react-jsx",
14
+ "strict": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noUncheckedSideEffectImports": true,
19
+ "resolveJsonModule": true,
20
+ "esModuleInterop": true
21
+ }
22
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.app.json"
6
+ },
7
+ {
8
+ "path": "./tsconfig.node.json"
9
+ }
10
+ ]
11
+ }
@@ -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
+ }
@@ -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/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/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/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/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/typescript@5.8.3/node_modules/typescript/bin/tsc" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/tsc" "$@"
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/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/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/typescript@5.8.3/node_modules/typescript/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/typescript@5.8.3/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/typescript@5.8.3/node_modules/typescript/bin/tsserver" "$@"
15
+ else
16
+ exec node "$basedir/../../../../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/tsserver" "$@"
17
+ fi
@@ -0,0 +1,25 @@
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
+ "exclude": [
19
+ "dist",
20
+ "node_modules",
21
+ "cypress",
22
+ "vite",
23
+ "vite.config.*"
24
+ ]
25
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowImportingTsExtensions": true,
10
+ "isolatedModules": true,
11
+ "moduleDetection": "force",
12
+ "noEmit": true,
13
+ "jsx": "react-jsx",
14
+ "strict": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noUncheckedSideEffectImports": true,
19
+ "resolveJsonModule": true,
20
+ "esModuleInterop": true
21
+ }
22
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.app.json"
6
+ },
7
+ {
8
+ "path": "./tsconfig.node.json"
9
+ }
10
+ ]
11
+ }
@@ -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
+ }
@@ -0,0 +1,25 @@
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
+ "exclude": [
19
+ "dist",
20
+ "node_modules",
21
+ "cypress",
22
+ "vite",
23
+ "vite.config.*"
24
+ ]
25
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowImportingTsExtensions": true,
10
+ "isolatedModules": true,
11
+ "moduleDetection": "force",
12
+ "noEmit": true,
13
+ "jsx": "react-jsx",
14
+ "strict": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noUncheckedSideEffectImports": true,
19
+ "resolveJsonModule": true,
20
+ "esModuleInterop": true
21
+ }
22
+ }
23
+
24
+
25
+
26
+
@@ -0,0 +1,11 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.app.json"
6
+ },
7
+ {
8
+ "path": "./tsconfig.node.json"
9
+ }
10
+ ]
11
+ }
@@ -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
+ }
@@ -0,0 +1,25 @@
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
+ "exclude": [
19
+ "dist",
20
+ "node_modules",
21
+ "cypress",
22
+ "vite",
23
+ "vite.config.*"
24
+ ]
25
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowImportingTsExtensions": true,
10
+ "isolatedModules": true,
11
+ "moduleDetection": "force",
12
+ "noEmit": true,
13
+ "jsx": "react-jsx",
14
+ "strict": true,
15
+ "noUnusedLocals": true,
16
+ "noUnusedParameters": true,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noUncheckedSideEffectImports": true,
19
+ "resolveJsonModule": true,
20
+ "esModuleInterop": true
21
+ }
22
+ }
23
+
24
+
25
+
26
+
@@ -0,0 +1,11 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.app.json"
6
+ },
7
+ {
8
+ "path": "./tsconfig.node.json"
9
+ }
10
+ ]
11
+ }
@@ -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
+ }
@@ -0,0 +1,25 @@
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
+ "exclude": [
19
+ "dist",
20
+ "node_modules",
21
+ "cypress",
22
+ "vite",
23
+ "vite.config.*"
24
+ ]
25
+ }