@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
@@ -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" "$@"
@@ -3,6 +3,7 @@
3
3
  "vite-plugin-qiankun": "^1.0.15"
4
4
  },
5
5
  "devDependencies": {
6
- "vite": "7.1.11"
6
+ "vite": "6.2.4",
7
+ "@moluoxixi/vite-config": "latest"
7
8
  }
8
9
  }
@@ -7,12 +7,12 @@ import { qiankunWindow, renderWithQiankun } from 'vite-plugin-qiankun/dist/helpe
7
7
  import React from 'react'
8
8
  import ReactDOM from 'react-dom/client'
9
9
  import { RouterProvider } from 'react-router-dom'
10
- import { createRouter } from '@/router'
10
+ import { createRouter } from './router'
11
11
  import { setupFeatures } from './main/index'
12
12
 
13
13
  // Import styles
14
- import '@/assets/styles/main.scss'
15
- import '@/assets/fonts/index.css'
14
+ import './assets/styles/main.scss'
15
+ import './assets/fonts/index.css'
16
16
 
17
17
  let root: ReturnType<typeof ReactDOM.createRoot> | null = null
18
18
 
@@ -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,27 @@
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
+
27
+
@@ -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
+ }
@@ -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
  }
@@ -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/vue-tsc@2.2.12_typescript@5.8.3/node_modules/vue-tsc/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@2.2.12_typescript@5.8.3/node_modules/vue-tsc/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@2.2.12_typescript@5.8.3/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/vue-tsc@3.2.4_typescript@5.8.3/node_modules/vue-tsc/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@3.2.4_typescript@5.8.3/node_modules/vue-tsc/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@3.2.4_typescript@5.8.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/vue-tsc@2.2.12_typescript@5.8.3/node_modules/vue-tsc/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@2.2.12_typescript@5.8.3/node_modules/vue-tsc/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@2.2.12_typescript@5.8.3/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/vue-tsc@3.2.4_typescript@5.8.3/node_modules/vue-tsc/bin/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@3.2.4_typescript@5.8.3/node_modules/vue-tsc/node_modules:/home/runner/work/vite-cli/vite-cli/node_modules/.pnpm/vue-tsc@3.2.4_typescript@5.8.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
14
  exec "$basedir/node" "$basedir/../vue-tsc/bin/vue-tsc.js" "$@"
@@ -4,10 +4,11 @@
4
4
  "type-check": "vue-tsc --noEmit"
5
5
  },
6
6
  "dependencies": {
7
- "vue": "^3.5.13"
7
+ "vue": "^3.5.13",
8
+ "vue-router": "^4.5.0"
8
9
  },
9
10
  "devDependencies": {
10
11
  "@vue-macros/volar": "^3.0.0-beta.15",
11
- "vue-tsc": "^2.1.30"
12
+ "vue-tsc": "^3.0.0"
12
13
  }
13
14
  }
@@ -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;
@@ -5,9 +5,9 @@
5
5
 
6
6
  import { createApp } from 'vue'
7
7
  import directives from '@/directives'
8
- import App from './App.vue'
9
- import getRouter from './router'
10
- import { setupFeatures } from './main/index'
8
+ import App from '@/App.vue'
9
+ import getRouter from '@/router'
10
+ import { setupFeatures } from '@/main/index'
11
11
 
12
12
  // Import styles
13
13
  import '@/assets/styles/main.scss'
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 默认路由配置(最小实现)
3
+ * 此文件会被 router feature (manualRoutes/pageRoutes) 覆盖
4
+ */
5
+
6
+ import { createRouter, createWebHistory } from 'vue-router'
7
+
8
+ /**
9
+ * 创建路由实例
10
+ * @returns 路由实例
11
+ */
12
+ function getRouter() {
13
+ return createRouter({
14
+ history: createWebHistory(),
15
+ routes: [
16
+ {
17
+ path: '/',
18
+ name: 'home',
19
+ component: () => import('@/App.vue'),
20
+ },
21
+ ],
22
+ })
23
+ }
24
+
25
+ export default getRouter
@@ -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
+ }
@@ -2,4 +2,8 @@
2
2
  * 工具函数导出
3
3
  */
4
4
 
5
+ // 导出通用工具函数
6
+ export * from './common'
7
+
8
+ // 导出 Vue 特定的工具函数
5
9
  export * from './modifyComponent'
@@ -1,13 +1,20 @@
1
1
  {
2
2
  "extends": "./tsconfig.base.json",
3
3
  "compilerOptions": {
4
- "module": "ESNext",
5
- "moduleResolution": "Bundler",
4
+ "lib": [
5
+ "DOM",
6
+ "ESNext"
7
+ ],
6
8
  "types": [
7
9
  "vite/client"
8
10
  ],
9
- "composite": true
11
+ "composite": true,
12
+ "baseUrl": ".",
13
+ "paths": {
14
+ "@/*": ["./src/*"]
15
+ }
10
16
  },
17
+ "include": ["src"],
11
18
  "vueCompilerOptions": {
12
19
  "plugins": [
13
20
  "@vue-macros/volar/define-models",
@@ -5,13 +5,9 @@
5
5
  ],
6
6
  "compilerOptions": {
7
7
  "target": "ESNext",
8
+ "module": "ESNext",
9
+ "moduleResolution": "Bundler",
8
10
  "jsx": "preserve",
9
- "baseUrl": ".",
10
- "paths": {
11
- "@/*": [
12
- "src/*"
13
- ]
14
- },
15
11
  "resolveJsonModule": true,
16
12
  "allowJs": true,
17
13
  "strict": true,
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "extends": "./tsconfig.base.json",
3
+ "files": [],
3
4
  "references": [
4
5
  {
5
6
  "path": "./tsconfig.app.json"
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "extends": "./tsconfig.base.json",
3
3
  "compilerOptions": {
4
- "module": "NodeNext",
5
- "moduleResolution": "nodenext",
6
4
  "noEmit": false,
7
5
  "allowImportingTsExtensions": true,
8
6
  "rewriteRelativeImportExtensions": true,
7
+ "types": ["node"],
9
8
  "composite": true
10
9
  },
11
10
  "include": [
@@ -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
+ }