feat: init

This commit is contained in:
ygx
2026-03-05 23:45:39 +08:00
commit 8fab91c5c7
214 changed files with 33682 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
/**
* If you use the template method for development, you can use the unplugin-vue-components plugin to enable on-demand loading support.
* 按需引入
* https://github.com/antfu/unplugin-vue-components
* https://arco.design/vue/docs/start
* Although the Pro project is full of imported components, this plugin will be used by default.
* 虽然Pro项目中是全量引入组件但此插件会默认使用。
*/
import Components from 'unplugin-vue-components/vite'
import { ArcoResolver } from 'unplugin-vue-components/resolvers'
export default function configArcoResolverPlugin() {
const arcoResolverPlugin = Components({
dirs: [], // Avoid parsing src/components. 避免解析到src/components
deep: false,
resolvers: [ArcoResolver()],
})
return arcoResolverPlugin
}

View File

@@ -0,0 +1,12 @@
/**
* Theme import
* 样式按需引入
* https://github.com/arco-design/arco-plugins/blob/main/packages/plugin-vite-vue/README.md
* https://arco.design/vue/docs/start
*/
import { vitePluginForArco } from '@arco-plugins/vite-vue'
export default function configArcoStyleImportPlugin() {
const arcoResolverPlugin = vitePluginForArco({})
return arcoResolverPlugin
}

31
config/plugin/compress.ts Normal file
View File

@@ -0,0 +1,31 @@
/**
* Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
* gzip压缩
* https://github.com/anncwb/vite-plugin-compression
*/
import type { Plugin } from 'vite'
import compressPlugin from 'vite-plugin-compression'
export default function configCompressPlugin(compress: 'gzip' | 'brotli', deleteOriginFile = false): Plugin | Plugin[] {
const plugins: Plugin[] = []
if (compress === 'gzip') {
plugins.push(
compressPlugin({
ext: '.gz',
deleteOriginFile,
})
)
}
if (compress === 'brotli') {
plugins.push(
compressPlugin({
ext: '.br',
algorithm: 'brotliCompress',
deleteOriginFile,
})
)
}
return plugins
}

View File

@@ -0,0 +1,20 @@
/**
* Generation packaging analysis
* 生成打包分析
*
* Vite 7 + rollup-plugin-visualizer 目前是 ESM-only
* 为避免在打包 vite.config.prod.ts 时被 esbuild 以 require 方式加载失败,
* 这里取消默认引入,仅在需要时手动在本地临时打开分析。
*/
import { isReportMode } from '../utils'
export default function configVisualizerPlugin() {
// 如需开启打包分析,可改为动态引入 rollup-plugin-visualizer
// const { visualizer } = await import('rollup-plugin-visualizer')
// 并返回相应插件实例。
if (isReportMode()) {
// 先返回空数组以保证构建稳定
return []
}
return []
}