-
Notifications
You must be signed in to change notification settings - Fork 468
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
324 additions
and
543 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -27,3 +27,6 @@ report.html | |
*.njsproj | ||
*.sln | ||
*.sw? | ||
|
||
/src/auto-imports.d.ts | ||
/src/components.d.ts |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import type { Plugin } from 'vite' | ||
import compressPlugin from 'vite-plugin-compression' | ||
|
||
/** | ||
* gzip压缩 | ||
* @param compress 压缩类型 | ||
* @param deleteOriginFile 是否删除原文件 | ||
*/ | ||
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 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
import viteImagemin from 'vite-plugin-imagemin' | ||
|
||
/** | ||
* 图片压缩 | ||
*/ | ||
export default function configImageminPlugin() { | ||
const imageminPlugin = viteImagemin({ | ||
gifsicle: { | ||
optimizationLevel: 7, | ||
interlaced: false, | ||
}, | ||
optipng: { | ||
optimizationLevel: 7, | ||
}, | ||
mozjpeg: { | ||
quality: 20, | ||
}, | ||
pngquant: { | ||
quality: [0.8, 0.9], | ||
speed: 4, | ||
}, | ||
svgo: { | ||
plugins: [ | ||
{ | ||
name: 'removeViewBox', | ||
}, | ||
{ | ||
name: 'removeEmptyAttrs', | ||
active: false, | ||
}, | ||
], | ||
}, | ||
}) | ||
return imageminPlugin | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import visualizer from 'rollup-plugin-visualizer' | ||
|
||
/** | ||
* 打包分析 | ||
* @param isOpen 是否开启打包分析 | ||
*/ | ||
export default function configVisualizerPlugin(isOpen = false) { | ||
// 自己手动开启或者定义打包分析环境变量开启打包分析 | ||
if (isOpen) { | ||
return visualizer({ | ||
filename: './node_modules/.cache/visualizer/stats.html', | ||
open: true, | ||
gzipSize: true, | ||
brotliSize: true, | ||
}) | ||
} | ||
return [] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
import { resolve } from 'path' | ||
import { defineConfig } from 'vite' | ||
import vue from '@vitejs/plugin-vue' | ||
import vueJsx from '@vitejs/plugin-vue-jsx' | ||
import autoprefixer from 'autoprefixer' | ||
import Icons from 'unplugin-icons/vite' | ||
import AutoImport from 'unplugin-auto-import/vite' | ||
import IconsResolver from 'unplugin-icons/resolver' | ||
import Components from 'unplugin-vue-components/vite' | ||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' | ||
|
||
export default defineConfig({ | ||
plugins: [ | ||
vue(), | ||
vueJsx(), | ||
AutoImport({ | ||
// 包括的文件类型 | ||
include: [/\.[tj]sx?$/, /\.vue$/, /\.vue\?vue/, /\.md$/], | ||
resolvers: [ElementPlusResolver(), IconsResolver({ prefix: 'Icon' })], | ||
dts: 'src/auto-imports.d.ts', | ||
}), | ||
Components({ | ||
resolvers: [ | ||
// 自动注册图标组件 | ||
IconsResolver({ enabledCollections: ['ep'] }), | ||
ElementPlusResolver(), | ||
], | ||
dts: 'src/components.d.ts', | ||
}), | ||
Icons({ autoInstall: true }), | ||
], | ||
resolve: { | ||
alias: [ | ||
{ | ||
find: '@', | ||
replacement: resolve(__dirname, '../src'), | ||
}, | ||
], | ||
}, | ||
define: { | ||
'process.env': {}, | ||
}, | ||
css: { | ||
postcss: { | ||
plugins: [ | ||
autoprefixer({}), // 自动添加样式兼容前缀 | ||
], | ||
}, | ||
}, | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import { mergeConfig, loadEnv } from 'vite' | ||
import baseConfig from './vite.config.base' | ||
|
||
const lifecycle = process.env.npm_lifecycle_event | ||
const isHttpsLifecycle = lifecycle === 'dev:https' | ||
|
||
export default mergeConfig( | ||
{ | ||
mode: 'development', // vite开发模式 | ||
server: { | ||
port: 9988, | ||
open: false, // 自动打开浏览器 | ||
fs: { | ||
strict: true, // 文件读取必须是相对于根目录的绝对路径 | ||
}, | ||
https: isHttpsLifecycle, // 开启https | ||
proxy: { | ||
// capi 开头的请求代理到远程服务器 | ||
'/capi': { | ||
// 地址根据环境配置读取 | ||
target: loadEnv('development', process.cwd()).VITE_API_PREFIX, | ||
changeOrigin: true, | ||
}, | ||
}, | ||
}, | ||
}, | ||
baseConfig, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import { mergeConfig } from 'vite' | ||
import baseConfig from './vite.config.base' | ||
import configCompressPlugin from './plugin/compress' | ||
import configVisualizerPlugin from './plugin/visualizer' | ||
import configImageminPlugin from './plugin/imagemin' | ||
|
||
export default mergeConfig( | ||
{ | ||
mode: 'production', // vite生产模式 | ||
// 插件的具体配置请查看对应的文件 | ||
plugins: [configCompressPlugin('gzip'), configVisualizerPlugin(), configImageminPlugin()], | ||
build: { | ||
rollupOptions: { | ||
output: { | ||
// 分包策略优化 | ||
manualChunks: { | ||
vue: ['vue', 'vue-router', 'pinia', '@vueuse/core'], | ||
xgplayer: ['xgplayer'], | ||
}, | ||
}, | ||
}, | ||
chunkSizeWarningLimit: 2000, | ||
}, | ||
}, | ||
baseConfig, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.