init
This commit is contained in:
15
build/constant.ts
Normal file
15
build/constant.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* @name Config
|
||||
* @description 项目配置
|
||||
*/
|
||||
|
||||
// prefix
|
||||
export const API_PREFIX = '/api';
|
||||
|
||||
// serve
|
||||
export const API_BASE_URL = '/api';
|
||||
export const API_TARGET_URL = 'http://localhost:8080';
|
||||
|
||||
// mock
|
||||
export const MOCK_API_BASE_URL = '/mock/api';
|
||||
export const MOCK_API_TARGET_URL = 'http://localhost:3000';
|
13
build/vite/plugins/autoImport.ts
Normal file
13
build/vite/plugins/autoImport.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* @name AutoImportDeps
|
||||
* @description 按需加载,自动引入
|
||||
*/
|
||||
import AutoImport from 'unplugin-auto-import/vite';
|
||||
|
||||
export const AutoImportDeps = () => {
|
||||
return AutoImport({
|
||||
imports: ['vue', 'uni-app', 'pinia'],
|
||||
dts: 'types/auto-imports.d.ts',
|
||||
vueTemplate: true,
|
||||
});
|
||||
};
|
11
build/vite/plugins/component.ts
Normal file
11
build/vite/plugins/component.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* @name AutoRegistryComponents
|
||||
* @description 按需加载,自动引入
|
||||
*/
|
||||
import Components from 'unplugin-vue-components/vite';
|
||||
|
||||
export const AutoRegistryComponents = () => {
|
||||
return Components({
|
||||
dts: 'types/components.d.ts',
|
||||
});
|
||||
};
|
36
build/vite/plugins/imagemin.ts
Normal file
36
build/vite/plugins/imagemin.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* @name ConfigImageminPlugin
|
||||
* @description 图片压缩配置
|
||||
*/
|
||||
import viteImagemin from 'vite-plugin-imagemin';
|
||||
|
||||
export const ConfigImageminPlugin = () => {
|
||||
const plugin = viteImagemin({
|
||||
gifsicle: {
|
||||
optimizationLevel: 7,
|
||||
interlaced: false,
|
||||
},
|
||||
mozjpeg: {
|
||||
quality: 20,
|
||||
},
|
||||
optipng: {
|
||||
optimizationLevel: 7,
|
||||
},
|
||||
pngquant: {
|
||||
quality: [0.8, 0.9],
|
||||
speed: 4,
|
||||
},
|
||||
svgo: {
|
||||
plugins: [
|
||||
{
|
||||
name: 'removeViewBox',
|
||||
},
|
||||
{
|
||||
name: 'removeEmptyAttrs',
|
||||
active: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
return plugin;
|
||||
};
|
30
build/vite/plugins/index.ts
Normal file
30
build/vite/plugins/index.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* @name createVitePlugins
|
||||
* @description 封装plugins数组统一调用
|
||||
*/
|
||||
import type { PluginOption } from 'vite';
|
||||
import uniPlugin from '@dcloudio/vite-plugin-uni';
|
||||
import { AutoImportDeps } from './autoImport';
|
||||
import { AutoRegistryComponents } from './component';
|
||||
import { ConfigUnoCSSPlugin } from './unocss';
|
||||
import { ConfigImageminPlugin } from './imagemin';
|
||||
|
||||
export default function createVitePlugins(isBuild: boolean) {
|
||||
const vitePlugins: (PluginOption | PluginOption[])[] = [
|
||||
// UnoCSS配置
|
||||
ConfigUnoCSSPlugin(),
|
||||
// 自动按需引入依赖
|
||||
AutoImportDeps(),
|
||||
// 自动按需引入组件(注意:需注册至 uni 之前,否则不会生效)
|
||||
AutoRegistryComponents(),
|
||||
// uni支持
|
||||
uniPlugin(),
|
||||
];
|
||||
|
||||
if (isBuild) {
|
||||
// vite-plugin-imagemin
|
||||
vitePlugins.push(ConfigImageminPlugin());
|
||||
}
|
||||
|
||||
return vitePlugins;
|
||||
}
|
9
build/vite/plugins/unocss.ts
Normal file
9
build/vite/plugins/unocss.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* @name ConfigUnoCSSPlugin
|
||||
* @description UnoCSS相关配置
|
||||
*/
|
||||
import UnoCSS from 'unocss/vite';
|
||||
|
||||
export const ConfigUnoCSSPlugin = () => {
|
||||
return UnoCSS();
|
||||
};
|
21
build/vite/proxy.ts
Normal file
21
build/vite/proxy.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import type { ProxyOptions } from 'vite';
|
||||
import { API_BASE_URL, API_TARGET_URL, MOCK_API_BASE_URL, MOCK_API_TARGET_URL } from '../constant';
|
||||
|
||||
type ProxyTargetList = Record<string, ProxyOptions>;
|
||||
|
||||
const init: ProxyTargetList = {
|
||||
// test
|
||||
[API_BASE_URL]: {
|
||||
target: API_TARGET_URL,
|
||||
changeOrigin: true,
|
||||
rewrite: path => path.replace(new RegExp(`^${API_BASE_URL}`), ''),
|
||||
},
|
||||
// mock
|
||||
[MOCK_API_BASE_URL]: {
|
||||
target: MOCK_API_TARGET_URL,
|
||||
changeOrigin: true,
|
||||
rewrite: path => path.replace(new RegExp(`^${MOCK_API_BASE_URL}`), '/api'),
|
||||
},
|
||||
};
|
||||
|
||||
export default init;
|
Reference in New Issue
Block a user