@gx-design-vue/create-gx-cli 0.1.12 → 0.1.13

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 (184) hide show
  1. package/bin/create-gx-cli +3 -2
  2. package/package.json +4 -4
  3. package/src/cli.js +10 -7
  4. package/src/git.js +8 -5
  5. package/src/main.js +29 -16
  6. package/template-mobile-vant-cli/package.json +5 -5
  7. package/template-gx-design-thin/.editorconfig +0 -19
  8. package/template-gx-design-thin/.env +0 -4
  9. package/template-gx-design-thin/.env.development +0 -15
  10. package/template-gx-design-thin/.env.production +0 -28
  11. package/template-gx-design-thin/.eslintignore +0 -16
  12. package/template-gx-design-thin/.prettierignore +0 -9
  13. package/template-gx-design-thin/LICENSE +0 -21
  14. package/template-gx-design-thin/README.md +0 -112
  15. package/template-gx-design-thin/build/constant.ts +0 -1
  16. package/template-gx-design-thin/build/generate/generateModifyVars.ts +0 -14
  17. package/template-gx-design-thin/build/rollupOptions/index.ts +0 -22
  18. package/template-gx-design-thin/build/util/hash.ts +0 -17
  19. package/template-gx-design-thin/build/util/index.ts +0 -131
  20. package/template-gx-design-thin/build/vite/cdn.ts +0 -63
  21. package/template-gx-design-thin/build/vite/optimizer.ts +0 -26
  22. package/template-gx-design-thin/build/vite/plugin/appConfig.ts +0 -91
  23. package/template-gx-design-thin/build/vite/plugin/autoImport.ts +0 -26
  24. package/template-gx-design-thin/build/vite/plugin/compress.ts +0 -31
  25. package/template-gx-design-thin/build/vite/plugin/html.ts +0 -39
  26. package/template-gx-design-thin/build/vite/plugin/index.ts +0 -75
  27. package/template-gx-design-thin/build/vite/plugin/mock.ts +0 -14
  28. package/template-gx-design-thin/build/vite/plugin/pwa.ts +0 -31
  29. package/template-gx-design-thin/build/vite/plugin/visualizer.ts +0 -14
  30. package/template-gx-design-thin/build/vite/plugin/viteMock/client.ts +0 -88
  31. package/template-gx-design-thin/build/vite/plugin/viteMock/createMockServer.ts +0 -271
  32. package/template-gx-design-thin/build/vite/plugin/viteMock/index.ts +0 -69
  33. package/template-gx-design-thin/build/vite/plugin/viteMock/types.ts +0 -48
  34. package/template-gx-design-thin/build/vite/plugin/viteMock/utils.ts +0 -48
  35. package/template-gx-design-thin/build/vite/plugin/viteNotice.ts +0 -40
  36. package/template-gx-design-thin/commitlint.config.cjs +0 -32
  37. package/template-gx-design-thin/config/default/defaultSettings.ts +0 -78
  38. package/template-gx-design-thin/config/default/network.ts +0 -10
  39. package/template-gx-design-thin/config/default/proxy.ts +0 -47
  40. package/template-gx-design-thin/config/default/theme.ts +0 -3
  41. package/template-gx-design-thin/config/index.ts +0 -11
  42. package/template-gx-design-thin/eslint.config.js +0 -51
  43. package/template-gx-design-thin/index.html +0 -42
  44. package/template-gx-design-thin/mock/_createProductionServer.ts +0 -19
  45. package/template-gx-design-thin/mock/_util.ts +0 -33
  46. package/template-gx-design-thin/mock/config/menu.ts +0 -21
  47. package/template-gx-design-thin/mock/config/user.ts +0 -123
  48. package/template-gx-design-thin/mock/datasSource/system/menu.ts +0 -10
  49. package/template-gx-design-thin/mock/datasSource/user/account.ts +0 -30
  50. package/template-gx-design-thin/mock/datasSource/user/index.ts +0 -47
  51. package/template-gx-design-thin/mock/util/crypto.ts +0 -23
  52. package/template-gx-design-thin/mock/util/table.ts +0 -92
  53. package/template-gx-design-thin/mock/util/utils.ts +0 -73
  54. package/template-gx-design-thin/package.json +0 -129
  55. package/template-gx-design-thin/pnpm-lock.yaml +0 -12575
  56. package/template-gx-design-thin/prettier.config.cjs +0 -18
  57. package/template-gx-design-thin/public/resource/css/index.css +0 -119
  58. package/template-gx-design-thin/public/resource/css/normalize.css +0 -396
  59. package/template-gx-design-thin/public/resource/img/favicon.ico +0 -0
  60. package/template-gx-design-thin/public/resource/img/logo.png +0 -0
  61. package/template-gx-design-thin/public/resource/img/pro_icon.svg +0 -1
  62. package/template-gx-design-thin/public/resource/img/pwa-192x192.png +0 -0
  63. package/template-gx-design-thin/public/resource/img/pwa-512x512.png +0 -0
  64. package/template-gx-design-thin/src/App.vue +0 -42
  65. package/template-gx-design-thin/src/assets/error_images/403.png +0 -0
  66. package/template-gx-design-thin/src/assets/error_images/404.png +0 -0
  67. package/template-gx-design-thin/src/assets/error_images/cloud.png +0 -0
  68. package/template-gx-design-thin/src/assets/login_images/login_background.svg +0 -1
  69. package/template-gx-design-thin/src/assets/logo.png +0 -0
  70. package/template-gx-design-thin/src/assets/menu_font/iconfont.css +0 -94
  71. package/template-gx-design-thin/src/assets/menu_font/iconfont.eot +0 -0
  72. package/template-gx-design-thin/src/assets/menu_font/iconfont.js +0 -1
  73. package/template-gx-design-thin/src/assets/menu_font/iconfont.json +0 -142
  74. package/template-gx-design-thin/src/assets/menu_font/iconfont.svg +0 -1
  75. package/template-gx-design-thin/src/assets/menu_font/iconfont.ttf +0 -0
  76. package/template-gx-design-thin/src/assets/menu_font/iconfont.woff +0 -0
  77. package/template-gx-design-thin/src/assets/menu_font/iconfont.woff2 +0 -0
  78. package/template-gx-design-thin/src/assets/menu_font/index.less +0 -94
  79. package/template-gx-design-thin/src/assets/public_icon/iconfont.css +0 -42
  80. package/template-gx-design-thin/src/assets/public_icon/iconfont.eot +0 -0
  81. package/template-gx-design-thin/src/assets/public_icon/iconfont.js +0 -1
  82. package/template-gx-design-thin/src/assets/public_icon/iconfont.json +0 -51
  83. package/template-gx-design-thin/src/assets/public_icon/iconfont.svg +0 -1
  84. package/template-gx-design-thin/src/assets/public_icon/iconfont.ttf +0 -0
  85. package/template-gx-design-thin/src/assets/public_icon/iconfont.woff +0 -0
  86. package/template-gx-design-thin/src/assets/public_icon/iconfont.woff2 +0 -0
  87. package/template-gx-design-thin/src/assets/public_icon/index.less +0 -42
  88. package/template-gx-design-thin/src/assets/public_images/nodata.svg +0 -1
  89. package/template-gx-design-thin/src/common/global.ts +0 -4
  90. package/template-gx-design-thin/src/components/GDesign/Result/index.tsx +0 -144
  91. package/template-gx-design-thin/src/components/GDesign/Result/style.less +0 -140
  92. package/template-gx-design-thin/src/components/GDesign/utils/index.ts +0 -7
  93. package/template-gx-design-thin/src/components/GlobalLayout/Confirm/index.ts +0 -21
  94. package/template-gx-design-thin/src/components/GlobalLayout/Empty/index.vue +0 -18
  95. package/template-gx-design-thin/src/components/GlobalLayout/RightContent/index.tsx +0 -126
  96. package/template-gx-design-thin/src/components/GlobalLayout/RightContent/style.ts +0 -77
  97. package/template-gx-design-thin/src/components/GlobalLayout/Spin/index.tsx +0 -30
  98. package/template-gx-design-thin/src/components/PageLoading/index.tsx +0 -51
  99. package/template-gx-design-thin/src/components/index.ts +0 -6
  100. package/template-gx-design-thin/src/core/ant-design/index.ts +0 -10
  101. package/template-gx-design-thin/src/core/gx-admin-design/index.ts +0 -6
  102. package/template-gx-design-thin/src/core/gx-design/index.ts +0 -6
  103. package/template-gx-design-thin/src/core/gx-pro-design/index.ts +0 -8
  104. package/template-gx-design-thin/src/core/index.ts +0 -84
  105. package/template-gx-design-thin/src/design/ant-design/index.less +0 -4
  106. package/template-gx-design-thin/src/design/ant-design/layout.less +0 -22
  107. package/template-gx-design-thin/src/design/ant-design/menu.less +0 -48
  108. package/template-gx-design-thin/src/design/ant-design/spin.less +0 -23
  109. package/template-gx-design-thin/src/design/ant-design/tooltip.less +0 -7
  110. package/template-gx-design-thin/src/design/color.less +0 -1
  111. package/template-gx-design-thin/src/design/config.less +0 -5
  112. package/template-gx-design-thin/src/design/imageEditor.less +0 -180
  113. package/template-gx-design-thin/src/design/index.less +0 -95
  114. package/template-gx-design-thin/src/design/mixin.less +0 -65
  115. package/template-gx-design-thin/src/design/normalize.less +0 -391
  116. package/template-gx-design-thin/src/design/root.less +0 -3
  117. package/template-gx-design-thin/src/hooks/core/index.ts +0 -3
  118. package/template-gx-design-thin/src/hooks/core/useRequest/index.ts +0 -118
  119. package/template-gx-design-thin/src/hooks/event/index.ts +0 -3
  120. package/template-gx-design-thin/src/hooks/event/useClipboard.ts +0 -15
  121. package/template-gx-design-thin/src/hooks/web/index.ts +0 -5
  122. package/template-gx-design-thin/src/hooks/web/useThemeStyle.ts +0 -16
  123. package/template-gx-design-thin/src/layout/BasicLayout.vue +0 -123
  124. package/template-gx-design-thin/src/layout/BlankLayout.vue +0 -5
  125. package/template-gx-design-thin/src/layout/ContentView.vue +0 -50
  126. package/template-gx-design-thin/src/layout/IframeView.vue +0 -1
  127. package/template-gx-design-thin/src/layout/UserLayout.vue +0 -7
  128. package/template-gx-design-thin/src/main.ts +0 -34
  129. package/template-gx-design-thin/src/plugins/index.ts +0 -2
  130. package/template-gx-design-thin/src/router/guard/index.ts +0 -83
  131. package/template-gx-design-thin/src/router/guard/permissions.ts +0 -70
  132. package/template-gx-design-thin/src/router/guard/stateGuard.ts +0 -10
  133. package/template-gx-design-thin/src/router/helper/routeHelper.ts +0 -223
  134. package/template-gx-design-thin/src/router/helper/utils.ts +0 -19
  135. package/template-gx-design-thin/src/router/index.ts +0 -31
  136. package/template-gx-design-thin/src/router/routes/index.ts +0 -86
  137. package/template-gx-design-thin/src/router/routes/modules/dataSource.ts +0 -12
  138. package/template-gx-design-thin/src/services/common/index.ts +0 -11
  139. package/template-gx-design-thin/src/services/systemCenter/index.ts +0 -1
  140. package/template-gx-design-thin/src/services/systemCenter/menu.ts +0 -9
  141. package/template-gx-design-thin/src/services/userCenter/account.ts +0 -42
  142. package/template-gx-design-thin/src/services/userCenter/index.ts +0 -28
  143. package/template-gx-design-thin/src/store/index.ts +0 -32
  144. package/template-gx-design-thin/src/store/modules/dict.ts +0 -28
  145. package/template-gx-design-thin/src/store/modules/global.ts +0 -42
  146. package/template-gx-design-thin/src/store/modules/permission.ts +0 -19
  147. package/template-gx-design-thin/src/store/modules/routes.ts +0 -113
  148. package/template-gx-design-thin/src/store/modules/tabsRouter.ts +0 -76
  149. package/template-gx-design-thin/src/store/modules/user.ts +0 -136
  150. package/template-gx-design-thin/src/utils/accessToken.ts +0 -80
  151. package/template-gx-design-thin/src/utils/crypto/base64.ts +0 -101
  152. package/template-gx-design-thin/src/utils/crypto/index.ts +0 -57
  153. package/template-gx-design-thin/src/utils/env.ts +0 -50
  154. package/template-gx-design-thin/src/utils/fetchFile.ts +0 -81
  155. package/template-gx-design-thin/src/utils/index.ts +0 -123
  156. package/template-gx-design-thin/src/utils/pageTitle.ts +0 -20
  157. package/template-gx-design-thin/src/utils/request/XHR.ts +0 -139
  158. package/template-gx-design-thin/src/utils/request/axiosCancel.ts +0 -69
  159. package/template-gx-design-thin/src/utils/request/checkStatus.ts +0 -25
  160. package/template-gx-design-thin/src/utils/request/index.ts +0 -144
  161. package/template-gx-design-thin/src/utils/request/typings.ts +0 -171
  162. package/template-gx-design-thin/src/utils/storage.ts +0 -199
  163. package/template-gx-design-thin/src/utils/uploadFile.ts +0 -27
  164. package/template-gx-design-thin/src/utils/util.ts +0 -198
  165. package/template-gx-design-thin/src/utils/validate.ts +0 -216
  166. package/template-gx-design-thin/src/views/Iframe/index.vue +0 -76
  167. package/template-gx-design-thin/src/views/Page/one.vue +0 -13
  168. package/template-gx-design-thin/src/views/Page/two.vue +0 -13
  169. package/template-gx-design-thin/src/views/exception/403/index.vue +0 -7
  170. package/template-gx-design-thin/src/views/exception/404/index.vue +0 -9
  171. package/template-gx-design-thin/src/views/user/login/index.vue +0 -109
  172. package/template-gx-design-thin/src/views/user/login/style.less +0 -38
  173. package/template-gx-design-thin/tsconfig.json +0 -46
  174. package/template-gx-design-thin/types/ant-design-import.d.ts +0 -99
  175. package/template-gx-design-thin/types/auto-imports.d.ts +0 -81
  176. package/template-gx-design-thin/types/components.d.ts +0 -24
  177. package/template-gx-design-thin/types/config.d.ts +0 -44
  178. package/template-gx-design-thin/types/global.d.ts +0 -97
  179. package/template-gx-design-thin/types/mock.d.ts +0 -16
  180. package/template-gx-design-thin/types/module.d.ts +0 -20
  181. package/template-gx-design-thin/types/response.d.ts +0 -15
  182. package/template-gx-design-thin/unocss.config.ts +0 -101
  183. package/template-gx-design-thin/vite.config.ts +0 -120
  184. package/template-gx-design-thin/yarn.lock +0 -9492
@@ -1,131 +0,0 @@
1
- import fs from 'node:fs'
2
- import path, { resolve } from 'node:path'
3
- import dotenv from 'dotenv'
4
-
5
- export const rootPath = process.cwd()
6
-
7
- export function pathResolve(dir: string) {
8
- return resolve(process.cwd(), '.', dir)
9
- }
10
-
11
- /**
12
- * Whether to generate package preview
13
- */
14
- export function isReportMode(): boolean {
15
- return process.env.REPORT === 'true'
16
- }
17
-
18
- // Read all environment variable configuration files to process.env
19
- export function wrapperEnv(envConf: Recordable): ViteEnv {
20
- const ret: any = {}
21
-
22
- for (const envName of Object.keys(envConf)) {
23
- let realName = envConf[envName].replace(/\\n/g, '\n')
24
- realName = realName === 'true' ? true : realName === 'false' ? false : realName
25
-
26
- ret[envName] = realName
27
- process.env[envName] = realName
28
- }
29
- return ret
30
- }
31
-
32
- /**
33
- * 获取当前环境下生效的配置文件名
34
- */
35
- function getConfFiles() {
36
- const script = process.env.npm_lifecycle_script
37
- const reg = new RegExp('--mode ([a-z]+)')
38
- const result = reg.exec(script as string) as any
39
- if (result) {
40
- const mode = result[1] as string
41
- return [ '.env', `.env.${mode}` ]
42
- }
43
- return [ '.env', '.env.production' ]
44
- }
45
-
46
- /**
47
- * Get the environment variables starting with the specified prefix
48
- * @param match prefix
49
- * @param confFiles ext
50
- */
51
- export function getEnvConfig(confFiles = getConfFiles()): Partial<ViteEnv> {
52
- let envConfig: Partial<ViteEnv> = {}
53
- confFiles.forEach((item) => {
54
- try {
55
- const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)))
56
- envConfig = { ...envConfig, ...env }
57
- } catch (e) {
58
- console.error(`Error in parsing ${item}`, e)
59
- }
60
- })
61
- return envConfig
62
- }
63
-
64
- /**
65
- * Get user root directory
66
- * @param dir file path
67
- */
68
- export function getRootPath(...dir: string[]) {
69
- return path.resolve(process.cwd(), ...dir)
70
- }
71
-
72
- export function getDefaultPath(supportTs = true) {
73
- return path.resolve(process.cwd(), `src/main.${supportTs ? 'ts' : 'js'}`)
74
- }
75
-
76
- export function fileExists(f: string) {
77
- try {
78
- fs.accessSync(f, fs.constants.W_OK)
79
- return true
80
- } catch (error) {
81
- return false
82
- }
83
- }
84
-
85
- function q(t) {
86
- return t.reduce((n, e) => n + e)
87
- }
88
-
89
- function Gt(t, n?: number) {
90
- if (t === 0)
91
- return '0 Bytes'
92
- const e = 1024
93
- const r = n || 2
94
- const o = [ 'Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB' ]
95
- const s = Math.floor(Math.log(t) / Math.log(e))
96
- return `${Number.parseFloat((t / e ** s).toFixed(r))} ${o[s]}`
97
- }
98
-
99
- const ot = []
100
-
101
- export function getPackageSize({ folder, callBack, format = !0 }) {
102
- fs.readdir(folder, (err, files) => {
103
- if (err)
104
- throw err
105
-
106
- let index = 0
107
- const callBacks = () => {
108
- if (++index === files.length) {
109
- callBack(format ? Gt(q(ot)) : q(ot))
110
- }
111
- }
112
-
113
- files.forEach((p) => {
114
- fs.stat(`${folder}/${p}`, (err, stat) => {
115
- if (err)
116
- throw err
117
- if (stat.isFile()) {
118
- ot.push(stat.size)
119
- callBacks()
120
- } else {
121
- getPackageSize({
122
- folder: `${folder}/${p}`,
123
- callBack: callBacks
124
- })
125
- }
126
- })
127
- })
128
-
129
- files.length === 0 && callBack(0)
130
- })
131
- }
@@ -1,63 +0,0 @@
1
- import fs from 'node:fs'
2
- import path from 'node:path'
3
- import { defaultSettings } from '../../config'
4
-
5
- const { cdnUrl, cdnModules } = defaultSettings
6
-
7
- function getModuleVersion(name: string): string {
8
- const pwd = process.cwd()
9
- const pkgFile = path.join(pwd, 'node_modules', name, 'package.json')
10
- if (fs.existsSync(pkgFile)) {
11
- const pkgJson = JSON.parse(fs.readFileSync(pkgFile, 'utf8'))
12
- return pkgJson.version
13
- }
14
-
15
- return ''
16
- }
17
-
18
- function isFullPath(path: string) {
19
- return path.startsWith('http:') || path.startsWith('https:') || path.startsWith('//')
20
- }
21
-
22
- function renderUrl(data: CdnModuleList & {
23
- version: string
24
- }) {
25
- const { path } = data
26
- if (isFullPath(path))
27
- return path
28
- return cdnUrl.replace(/\{name\}/g, data.name)
29
- .replace(/\{version\}/g, data.version)
30
- .replace(/\{path\}/g, path)
31
- }
32
-
33
- function getCdnModuleFiles() {
34
- return cdnModules.map(m => {
35
- const version = getModuleVersion(m.name)
36
- if (!version) {
37
- throw new Error(`modules: ${m.name} package.json file does not exist`)
38
- }
39
-
40
- let css = m.css || []
41
- if (!Array.isArray(css) && css) {
42
- css = [ css ]
43
- }
44
-
45
- return {
46
- js: renderUrl({
47
- ...m,
48
- version
49
- }),
50
- css
51
- }
52
- })
53
- }
54
-
55
- export function getExternalMap() {
56
- const externalMap = {}
57
- cdnModules.forEach((v) => {
58
- externalMap[v.name] = v.globalName
59
- })
60
- return externalMap
61
- }
62
-
63
- export default getCdnModuleFiles()
@@ -1,26 +0,0 @@
1
- import type { GetManualChunk } from 'rollup'
2
-
3
- const vendorLibs: { match: string[]; output: string }[] = [
4
- {
5
- match: ['ant-design-vue'],
6
- output: 'ant-design-vue',
7
- },
8
- {
9
- match: ['@gx-design-vue/pro-field'],
10
- output: 'pro-field',
11
- },
12
- {
13
- match: ['@gx-design-vue/pro-form'],
14
- output: 'pro-form',
15
- },
16
- ]
17
-
18
- export const configManualChunk: GetManualChunk = (id: string) => {
19
- if (/[\\/]node_modules[\\/]/.test(id)) {
20
- const matchItem = vendorLibs.find((item) => {
21
- const reg = new RegExp(`[\\/]node_modules[\\/]_?(${item.match.join('|')})(.*)`, 'ig')
22
- return reg.test(id)
23
- })
24
- return matchItem ? matchItem.output : null
25
- }
26
- }
@@ -1,91 +0,0 @@
1
- import colors from 'picocolors'
2
- import type { PluginOption } from 'vite'
3
- import { readPackageJSON } from 'pkg-types'
4
-
5
- import { getEnvConfig, rootPath } from '../../util'
6
- import { createContentHash, strToHex } from '../../util/hash'
7
-
8
- const GLOBAL_CONFIG_FILE_NAME = '_app.config.js'
9
- const PLUGIN_NAME = 'app-config'
10
-
11
- async function createAppConfigPlugin({
12
- isBuild
13
- }: {
14
- isBuild: boolean;
15
- }): Promise<PluginOption> {
16
- let publicPath: string
17
- let source: string
18
- if (!isBuild) {
19
- return {
20
- name: PLUGIN_NAME
21
- }
22
- }
23
- const { version = '' } = await readPackageJSON(rootPath)
24
-
25
- return {
26
- name: PLUGIN_NAME,
27
- async configResolved(_config) {
28
- const appTitle = _config?.env?.VITE_GLOB_APP_TITLE ?? ''
29
- publicPath = _config.base
30
- source = await getConfigSource(appTitle)
31
- },
32
- async transformIndexHtml(html) {
33
- publicPath = publicPath.endsWith('/') ? publicPath : `${publicPath}/`
34
-
35
- const appConfigSrc = `${
36
- publicPath || '/'
37
- }${GLOBAL_CONFIG_FILE_NAME}?v=${version}-${createContentHash(source)}`
38
-
39
- return {
40
- html,
41
- tags: [
42
- {
43
- tag: 'script',
44
- attrs: {
45
- src: appConfigSrc
46
- }
47
- }
48
- ]
49
- }
50
- },
51
- async generateBundle() {
52
- try {
53
- this.emitFile({
54
- type: 'asset',
55
- fileName: GLOBAL_CONFIG_FILE_NAME,
56
- source
57
- })
58
- } catch (error) {
59
- console.log(
60
- colors.red(`configuration file configuration file failed to package:\n${error}`)
61
- )
62
- }
63
- }
64
- }
65
- }
66
-
67
- /**
68
- * Get the configuration file variable name
69
- * @param env
70
- */
71
- const getVariableName = (title: string) => {
72
- return `__PRODUCTION__${strToHex(title) || '__APP'}__CONF__`.toUpperCase().replace(/\s/g, '')
73
- }
74
-
75
- async function getConfigSource(appTitle: string) {
76
- const config = await getEnvConfig()
77
- const variableName = getVariableName(appTitle)
78
- const windowVariable = `window.${variableName}`
79
- // Ensure that the variable will not be modified
80
- let source = `${windowVariable}=${JSON.stringify(config)};`
81
- source += `
82
- Object.freeze(${windowVariable});
83
- Object.defineProperty(window, "${variableName}", {
84
- configurable: false,
85
- writable: false,
86
- });
87
- `.replace(/\s/g, '')
88
- return source
89
- }
90
-
91
- export { createAppConfigPlugin }
@@ -1,26 +0,0 @@
1
- import autoImport from 'unplugin-auto-import/vite'
2
- import Components from 'unplugin-vue-components/vite'
3
- import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
4
- import { defaultSettings } from '../../../config'
5
-
6
- const importsModules = [ 'vue', 'vue-router' ] as any
7
-
8
- export function createAutoImport() {
9
- const useCdnModules = defaultSettings.useCdn && defaultSettings.cdnModules.some(el => importsModules.includes(el.name))
10
- return [
11
- autoImport({
12
- include: [
13
- /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
14
- /\.vue$/, /\.vue\?vue/, // .vue
15
- /\.md$/ // .md
16
- ],
17
- imports: useCdnModules ? [] : importsModules,
18
- dts: 'types/auto-imports.d.ts',
19
- dirs: [ 'src/store' ]
20
- }),
21
- Components({
22
- resolvers: [ AntDesignVueResolver({ importStyle: false, resolveIcons: true }) ],
23
- dts: 'types/ant-design-import.d.ts'
24
- })
25
- ]
26
- }
@@ -1,31 +0,0 @@
1
- import type { Plugin } from 'vite'
2
-
3
- import compressPlugin from 'vite-plugin-compression'
4
-
5
- export function configCompressPlugin(
6
- compress: 'gzip' | 'brotli' | 'none',
7
- deleteOriginFile = false
8
- ): Plugin | Plugin[] {
9
- const compressList = compress.split(',')
10
-
11
- const plugins: Plugin[] = []
12
-
13
- if (compressList.includes('gzip')) {
14
- plugins.push(
15
- compressPlugin({
16
- ext: '.gz',
17
- deleteOriginFile
18
- })
19
- )
20
- }
21
- if (compressList.includes('brotli')) {
22
- plugins.push(
23
- compressPlugin({
24
- ext: '.br',
25
- algorithm: 'brotliCompress',
26
- deleteOriginFile
27
- })
28
- )
29
- }
30
- return plugins
31
- }
@@ -1,39 +0,0 @@
1
- import type { PluginOption } from 'vite'
2
- import { createHtmlPlugin } from 'vite-plugin-html'
3
-
4
- import cdnModules from '../cdn'
5
- import { GLOB_CONFIG_FILE_NAME } from '../../constant'
6
- import { defaultSettings } from '../../../config'
7
- import pkg from '../../../package.json'
8
-
9
- const { title, publicPath, useCdn } = defaultSettings
10
-
11
- export function configHtmlPlugin(_: ViteEnv, isBuild: boolean) {
12
- const path = publicPath.endsWith('/') ? publicPath : `${publicPath}/`
13
-
14
- const getAppConfigSrc = () => {
15
- return `${path || '/'}${GLOB_CONFIG_FILE_NAME}?v=${pkg.version}-${new Date().getTime()}`
16
- }
17
-
18
- const htmlPlugin: PluginOption[] = createHtmlPlugin({
19
- minify: isBuild,
20
- inject: {
21
- // Inject data into ejs template
22
- data: {
23
- VUE_APP_TITLE: title,
24
- injectScript: useCdn && isBuild ? cdnModules.map(e => e.js).filter(el => el) : [],
25
- injectLink: useCdn && isBuild ? cdnModules.map(e => e.css).filter(el => el) : []
26
- },
27
- // Embed the generated app.config.js file
28
- tags: isBuild
29
- ? [
30
- {
31
- tag: 'script',
32
- attrs: { src: getAppConfigSrc() }
33
- }
34
- ]
35
- : []
36
- }
37
- })
38
- return htmlPlugin
39
- }
@@ -1,75 +0,0 @@
1
- import type { PluginOption } from 'vite'
2
-
3
- import vue from '@vitejs/plugin-vue'
4
- import vueJsx from '@vitejs/plugin-vue-jsx'
5
- import VueDevTools from 'vite-plugin-vue-devtools'
6
- import legacy from '@vitejs/plugin-legacy'
7
-
8
- import vueSetupExtend from 'vite-plugin-vue-setup-extend'
9
-
10
- import Unocss from 'unocss/vite'
11
-
12
- import { configPwaConfig } from './pwa'
13
- import { configHtmlPlugin } from './html'
14
- import { configMockPlugin } from './mock'
15
- import viteNotice from './viteNotice'
16
- import { createAutoImport } from './autoImport'
17
- import { configCompressPlugin } from './compress'
18
- import { createAppConfigPlugin } from './appConfig'
19
- import { configVisualizerConfig } from './visualizer'
20
-
21
- export async function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
22
- const {
23
- VITE_APP_ENV,
24
- VITE_USE_MOCK,
25
- VITE_LEGACY,
26
- VITE_BUILD_COMPRESS,
27
- VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE
28
- } = viteEnv
29
-
30
- const isDev = VITE_APP_ENV === 'dev'
31
-
32
- const vitePlugins: PluginOption[] = [
33
- // have to
34
- vue(),
35
- // have to
36
- vueJsx()
37
- ]
38
-
39
- // vite-plugin-app-info
40
- vitePlugins.push(await createAppConfigPlugin({ isBuild }))
41
- // vite-plugin-vue-devtools
42
- vitePlugins.push(VueDevTools() as any)
43
- // vite-plugin-windicss
44
- vitePlugins.push(Unocss())
45
- // vite-plugin-vue-setup-extend
46
- vitePlugins.push(vueSetupExtend())
47
- // @vitejs/plugin-legacy
48
- VITE_LEGACY && isBuild && vitePlugins.push(legacy())
49
- // vite-plugin-html
50
- vitePlugins.push(configHtmlPlugin(viteEnv, isBuild))
51
- // vite-plugin-build-info
52
- vitePlugins.push(await viteNotice())
53
- // vite-plugin-mock
54
- const useMock = isDev || VITE_USE_MOCK
55
- useMock && vitePlugins.push(configMockPlugin())
56
-
57
- // rollup-plugin-visualizer
58
- vitePlugins.push(configVisualizerConfig())
59
-
60
- // unplugin-auto-import/vite
61
- vitePlugins.push(createAutoImport())
62
-
63
- // The following plugins only work in the production environment
64
- if (isBuild) {
65
- // rollup-plugin-gzip
66
- vitePlugins.push(
67
- configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE)
68
- )
69
-
70
- // vite-plugin-pwa
71
- vitePlugins.push(configPwaConfig(viteEnv))
72
- }
73
-
74
- return vitePlugins
75
- }
@@ -1,14 +0,0 @@
1
- import { viteMockServe } from './viteMock'
2
-
3
- export function configMockPlugin() {
4
- return viteMockServe({
5
- ignore: /^_/,
6
- mockPath: 'mock',
7
- enable: true,
8
- injectCode: `
9
- import { setupProdMockServer } from '../mock/_createProductionServer';
10
-
11
- setupProdMockServer();
12
- `,
13
- })
14
- }
@@ -1,31 +0,0 @@
1
- import { VitePWA } from 'vite-plugin-pwa'
2
-
3
- import { defaultSettings } from '../../../config'
4
-
5
- export function configPwaConfig(env: ViteEnv) {
6
- const { title, shortName } = defaultSettings
7
- const { VITE_USE_PWA } = env
8
-
9
- if (VITE_USE_PWA) {
10
- const pwaPlugin = VitePWA({
11
- manifest: {
12
- name: title || 'GX Pro Admin',
13
- short_name: shortName || 'gx_pro_admin',
14
- icons: [
15
- {
16
- src: './resource/img/pwa-192x192.png',
17
- sizes: '192x192',
18
- type: 'image/png'
19
- },
20
- {
21
- src: './resource/img/pwa-512x512.png',
22
- sizes: '512x512',
23
- type: 'image/png'
24
- }
25
- ]
26
- }
27
- })
28
- return pwaPlugin
29
- }
30
- return []
31
- }
@@ -1,14 +0,0 @@
1
- import { visualizer } from 'rollup-plugin-visualizer'
2
- import { isReportMode } from '../../util'
3
-
4
- export function configVisualizerConfig() {
5
- if (isReportMode()) {
6
- return visualizer({
7
- filename: './node_modules/.cache/visualizer/stats.html',
8
- open: true,
9
- gzipSize: true,
10
- brotliSize: true
11
- }) as Plugin
12
- }
13
- return []
14
- }
@@ -1,88 +0,0 @@
1
- import mockJs from 'mockjs'
2
- import { pathToRegexp } from 'path-to-regexp'
3
-
4
- const Mock = mockJs as any
5
-
6
- export function createProdMockServer(mockList: any[]) {
7
- Mock.XHR.prototype.__send = Mock.XHR.prototype.send
8
- Mock.XHR.prototype.send = function () {
9
- if (this.custom.xhr) {
10
- this.custom.xhr.withCredentials = this.withCredentials || false
11
-
12
- if (this.responseType) {
13
- this.custom.xhr.responseType = this.responseType
14
- }
15
- }
16
- if (this.custom.requestHeaders) {
17
- const headers: any = {}
18
- for (let k in this.custom.requestHeaders) {
19
- headers[k.toString().toLowerCase()] = this.custom.requestHeaders[k]
20
- }
21
- this.custom.options = Object.assign({}, this.custom.options, { headers })
22
- }
23
- this.__send.apply(this, arguments)
24
- }
25
-
26
- Mock.XHR.prototype.proxy_open = Mock.XHR.prototype.open
27
-
28
- Mock.XHR.prototype.open = function () {
29
- let responseType = this.responseType
30
- this.proxy_open(...arguments)
31
- if (this.custom.xhr) {
32
- if (responseType) {
33
- this.custom.xhr.responseType = responseType
34
- }
35
- }
36
- }
37
-
38
- for (const { url, method, response, timeout } of mockList) {
39
- __setupMock__(timeout)
40
- Mock.mock(
41
- pathToRegexp(url, undefined, { end: false }),
42
- method || 'get',
43
- __XHR2ExpressReqWrapper__(response)
44
- )
45
- }
46
- }
47
-
48
- function __param2Obj__(url: string) {
49
- const search = url.split('?')[1]
50
- if (!search) {
51
- return {}
52
- }
53
- return JSON.parse(
54
- '{"' +
55
- decodeURIComponent(search)
56
- .replace(/"/g, '\\"')
57
- .replace(/&/g, '","')
58
- .replace(/=/g, '":"')
59
- .replace(/\+/g, ' ') +
60
- '"}'
61
- )
62
- }
63
-
64
- function __XHR2ExpressReqWrapper__(handle: (d: any) => any) {
65
- return function (options: any) {
66
- let result = null
67
- if (typeof handle === 'function') {
68
- const { body, type, url, headers } = options
69
- result = handle({
70
- method: type,
71
- body: JSON.parse(body),
72
- query: __param2Obj__(url),
73
- headers
74
- })
75
- } else {
76
- result = handle
77
- }
78
-
79
- return Mock.mock(result)
80
- }
81
- }
82
-
83
- function __setupMock__(timeout = 0) {
84
- timeout &&
85
- Mock.setup({
86
- timeout
87
- })
88
- }