向文可 2 years ago
parent 8751044377
commit 5e535e0de0

@ -0,0 +1,34 @@
module.exports = {
root: true,
env: {
es6: true,
node: true,
browser: true,
},
extends: ['eslint:recommended'],
parser: 'vue-eslint-parser',
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
ecmaFeatures: {
jsx: true,
impliedStrict: true,
},
},
rules: {
'no-undef': 'error',
'no-alert': 'warn',
'no-debugger': 'warn',
'no-else-return': 'error',
indent: [0, 4],
eqeqeq: [2, 'always'],
semi: [2, 'always'],
quotes: [2, 'single'],
},
globals: {
arguments: true,
defineProps: true,
defineEmits: true,
defineExpose: true,
},
};

24
.gitignore vendored

@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

@ -0,0 +1,3 @@
{
"recommendations": ["johnsoncodehk.volar", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
}

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

@ -0,0 +1,28 @@
{
"name": "russia-block",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"vue": "^3.2.25"
},
"devDependencies": {
"@originjs/vite-plugin-global-style": "^1.0.2",
"@types/node": "^17.0.21",
"@vitejs/plugin-legacy": "^1.7.1",
"@vitejs/plugin-vue": "^2.2.0",
"@vitejs/plugin-vue-jsx": "^1.3.8",
"consola": "^2.15.3",
"less": "^4.1.2",
"unplugin-auto-import": "^0.6.4",
"unplugin-vue-components": "^0.18.0",
"vite": "^2.8.0",
"vite-plugin-remove-console": "^0.0.6",
"vite-plugin-style-import": "^2.0.0",
"vite-plugin-svg-icons": "^2.0.1"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,56 @@
{
"globals": {
"_": true,
"axios": true,
"computed": true,
"createApp": true,
"customRef": true,
"dayjs": true,
"defineAsyncComponent": true,
"defineComponent": true,
"effectScope": true,
"EffectScope": true,
"getCurrentInstance": true,
"getCurrentScope": true,
"h": true,
"inject": true,
"isReadonly": true,
"isRef": true,
"markRaw": true,
"nextTick": true,
"onActivated": true,
"onBeforeMount": true,
"onBeforeUnmount": true,
"onBeforeUpdate": true,
"onDeactivated": true,
"onErrorCaptured": true,
"onMounted": true,
"onRenderTracked": true,
"onRenderTriggered": true,
"onScopeDispose": true,
"onServerPrefetch": true,
"onUnmounted": true,
"onUpdated": true,
"provide": true,
"reactive": true,
"readonly": true,
"ref": true,
"resolveComponent": true,
"shallowReactive": true,
"shallowReadonly": true,
"shallowRef": true,
"toRaw": true,
"toRef": true,
"toRefs": true,
"triggerRef": true,
"unref": true,
"useAttrs": true,
"useCssModule": true,
"useCssVars": true,
"useRoute": true,
"useRouter": true,
"useSlots": true,
"watch": true,
"watchEffect": true
}
}

@ -0,0 +1,12 @@
<template>
<div id="app">
<h1>
<SvgIcon name="vue" color="red" size="30"></SvgIcon><span>马士兵严选</span
><SvgIcon name="msb" size="30"></SvgIcon>
</h1>
</div>
</template>
<script setup></script>
<style lang="less"></style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

@ -0,0 +1,57 @@
// Generated by 'unplugin-auto-import'
// We suggest you to commit this file into source control
declare global {
const _: typeof import('lodash')
const axios: typeof import('axios')['default']
const computed: typeof import('vue')['computed']
const createApp: typeof import('vue')['createApp']
const customRef: typeof import('vue')['customRef']
const dayjs: typeof import('dayjs')
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
const defineComponent: typeof import('vue')['defineComponent']
const effectScope: typeof import('vue')['effectScope']
const EffectScope: typeof import('vue')['EffectScope']
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
const getCurrentScope: typeof import('vue')['getCurrentScope']
const h: typeof import('vue')['h']
const inject: typeof import('vue')['inject']
const isReadonly: typeof import('vue')['isReadonly']
const isRef: typeof import('vue')['isRef']
const markRaw: typeof import('vue')['markRaw']
const nextTick: typeof import('vue')['nextTick']
const onActivated: typeof import('vue')['onActivated']
const onBeforeMount: typeof import('vue')['onBeforeMount']
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
const onDeactivated: typeof import('vue')['onDeactivated']
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
const onMounted: typeof import('vue')['onMounted']
const onRenderTracked: typeof import('vue')['onRenderTracked']
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
const onScopeDispose: typeof import('vue')['onScopeDispose']
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
const onUnmounted: typeof import('vue')['onUnmounted']
const onUpdated: typeof import('vue')['onUpdated']
const provide: typeof import('vue')['provide']
const reactive: typeof import('vue')['reactive']
const readonly: typeof import('vue')['readonly']
const ref: typeof import('vue')['ref']
const resolveComponent: typeof import('vue')['resolveComponent']
const shallowReactive: typeof import('vue')['shallowReactive']
const shallowReadonly: typeof import('vue')['shallowReadonly']
const shallowRef: typeof import('vue')['shallowRef']
const toRaw: typeof import('vue')['toRaw']
const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']
const triggerRef: typeof import('vue')['triggerRef']
const unref: typeof import('vue')['unref']
const useAttrs: typeof import('vue')['useAttrs']
const useCssModule: typeof import('vue')['useCssModule']
const useCssVars: typeof import('vue')['useCssVars']
const useRoute: typeof import('vue-router')['useRoute']
const useRouter: typeof import('vue-router')['useRouter']
const useSlots: typeof import('vue')['useSlots']
const watch: typeof import('vue')['watch']
const watchEffect: typeof import('vue')['watchEffect']
}
export {}

@ -0,0 +1,11 @@
// generated by unplugin-vue-components
// We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/vue-next/pull/3399
declare module 'vue' {
export interface GlobalComponents {
SvgIcon: typeof import('./components/SvgIcon.vue')['default']
}
}
export { }

@ -0,0 +1,42 @@
<template>
<svg class="svg-icon" aria-hidden="true">
<use :href="symbolId" :fill="color" />
</svg>
</template>
<script>
export default defineComponent({
name: 'SvgIcon',
props: {
prefix: {
type: String,
default: 'icon',
},
name: {
type: String,
required: true,
},
color: {
type: String,
default: '#333',
},
size: {
type: [Number, String],
default: 16,
},
},
setup(props) {
const symbolId = computed(() => `#${props.prefix}-${props.name}`);
const size = computed(() =>
typeof new Number(props.size) !== Number.NaN ? props.size + 'px' : props.size
);
return { symbolId, size };
},
});
</script>
<style lang="less" scoped>
.svg-icon {
width: v-bind(size);
height: v-bind(size);
}
</style>

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"> <image id="image0" width="64" height="64" x="0" y="0"
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAA
B3RJTUUH5gMIBhYzKRiocwAAFItJREFUeNq9m8lzHPd1xz+vpwcYrAQIggCxkCIJEpQISaSslZBF
WrItuZIylDiVSsqHnJNLjq5KuXTwKX9Bjq7KwWXlEMdQZZG8lSWFkCxro7jvoAgCg32wzT79cnjd
M92zAITkyo81xMy86f793v597/drUVW+6iiOT7jAPuAwcFhhGNUhQXqBHoQelC6EViChSkKEJgUB
+09VEREAFBQlL0IWyKKkEVLAKrCk6ALIDKr3gbsichdYcs9PFr8qD7JbARTHX+8APQSMAseBg0Av
0AV0Am1AC9Dsv5oAVyEmEMNekRGswMRAKfQqAnkgp5ATyABbwDqQQllE9EvgBirXgXvu1OTGn1wA
+fHXYw7aAxwBfQx4AmQMOAbsBxLbXV/F4J+OrmQRFlBuApcQLqJcAe4QkyX3/V+WvpYASuOvi6It
ig6DPC/wXdBnFQaAFsFsdzsGVEOEqh/KV6SX56l8r0AGYRblI+BXiH4Ich/IuOcnGzLpbq85bQee
AX4AelZVhkSkVew6sQVpnRVVFiwSuR8gkV99FbpWSUrsTYuihxDpFdUnUd5F+Hfgj0BDt2hoAYUz
3+8DXgL+VkSeVehHNSZSq+dgQdLQiH1N+r+ue49d0Cu8i/0eCVEUQUpAUlU/EpGfA++55yfnH1oA
hfGJPpSXQX8InENoq2h09wLQ8n/1GdwtvVYA9j4kgCClbAG/B34G/C4+9VaNECICKI5PCNCh8Koo
fwe8pmisxgcl5Hxh+Um1kDS0sIoa6zOoodtIxJuqr49OGGLdv69oRRSgJeBt4F9F5G1gMxwTqmNA
C/CcwA8RzqkSK3PlL1xVywspe6JUrS9ED4fJ4Pq65i5SxgUVjQf0qvlr1NjY9UBiIpwDChiemALS
AdUJ3hSen4ipclDhB1jga0MUJAhMUtGe/xL/ZUIKfQ7RVdW/Ohy8/CscBxLNyEAfMvIIHBpCenug
pRlBkWIJLZUQz9dl6Hqbo5Z3KdMi9DbKwZyD+fGJMhapWECMXuAFLPD11Rra1xhadRMJ/Y050NqC
DPRDdxc0x5FMFlLrsJKC5RVY34RMFkpFAq4qdvHQox84q/CRQApIRgUAR4FXBQZVNVbWtoaCnPha
LMeCCn81DJcVIWbyGro+kIkq5IuwugZde5Bjh+HRY8i+vVAqoXMLcO0m3JpGZ5PISgrN5KBUjEDo
cGyx+0bX59NjKjIIvArcCAQgqkpxfKJLVf8a+JGIHAwEUx3dA+ZrgphWfqdVUTwMZKrxDqogDsQc
JO7Cng4YOYxz9gXk9EnY0wm5PCytoLfuoheuoBeuwPyifV83I21rsUXgS+CfgX9zz0+ux378688E
GBXheyK8pEhTEIOrfTcSB6osOmySYbr4AhGf4SDiiwgSiyHiIF7JGNrKoKtrsJJC3DjyyDDSvQfp
6oT9PcjQgLlK3IWtDGxuVal6R3cVLNDPAHe9n765EPvJl9fwfvrzs8CfASP1M30Ic9URQLUm6tKD
7JFIIMMDyGPHkLETyOhRZKAPWhKQy8HaBswvQ7FortDbgzQ1IS0Jez/QB3u7LHgWC7C+AcUgNrDT
EMy6M8Bd9/zk5diPf/VZHOF1kFdBOqsztJZN3gcdjVJOJCvUMclYDO3sQI4dRs6+gPPaOeSl55GT
o3D0EejpBk+RbA7yObumvRU5MYIk/FpLFUk0w2A/cnAQ2lvRxRWzhlKpMl8IKSuKqIQ+I2IV6rT3
0zc/cIH9IMNYXR+JaNXBrZF/aQOAE3ynnof0dOM8/xTyvW8hw4Nmxqtr6GeXkK5O5NQYeuokfPgp
3gcfA4J0dyGxWORexofA/n3I2ReQ3l68ybfRj7+AbLYCEKnUDuFF+2/3AcPAfhc4grIPa1RQhpIS
+HwodwcSiMfBEZN6voAoqESbGwDq5285NIiceRp5eRzn2BE00Qx37qFTn6CzSXRzCzl6CBl/Br75
HM7xI1AqIYMHoK2tvsU5jmWOJx7FKRXxEs3oh5+YNXgeKuHgXaO4ZmAfyhEX6+Z0RX61ky85vgZ6
96Ira7C+iWSzaLEE6lUW2NKC9PfCs6eR8WeQEyPgmkZ1aQX94gqsrJkQ7txDSh7Ot84YKCqWoFBA
7z+wBcVj0NSENDdBczM0xW2e9lbkqcdtydkc+vll2NisCzuqzLkbOOwiDGOdnGhlGzHtsg3a32LJ
zPbpJyyPL66gqykknYFC0YJdcxNOX68t7snHkAP7LQ6o74UKpLPo9H00nYatLfj1e4bn+/ZZVkit
GwASsSC5pwPt3oP07IWeLqSzA5qb0bZW5PFHLRiub6A37vjXlRmJrt8+doIOuigDfs/Op9c6TEVo
Pg4oFtF7Myb977+GfPuA3TSTMYGoQqLJ8npnB9LSAiFfRgHPM0BTKtnnYgnmFvDeesesp1BACyUf
K4CIY9bT2gJ7u5ChA8joCPLkYzDQB53tyNgJWF41S7h+OxyIIlP7H1tBhlyE/UBLvaI2AoAgggnY
2EKv34HfvAdnnrHJB/vLKU9iDrjRWqtSyCjkC2g6g3heRdD5PDq/ZAhR1a/qQkFMQWMxZH4R/XIW
vX4buXAZHn8UOfWY4YRnT6Oz82Y9C0s1lh/SaQLojb0xPPr3GE7uKLPd2QFNTZDNla+qwQGqRp+b
h9UUpDPmGk1xpL3VAmW9IWKL+/wy+tFndl3gFuUY41ihJGLxxnHsFWSBUsmuW16FB0mrFzbTts7e
Hkg0G564P1unhC6PDJCOvTE0+o8Ie0Fag5pPDg8je7tgcwstlvzoX4UDQvGA5Dx6exqdmUNyeWhr
QTrawHVrMoMUinDxCvr+R2amnhduizdMpRF66KWeZ7FnYxNKHjLYjxwcMve6fhvN5czKfC2GcEJe
0XzsjYOjP1KlA0sNdt9DQ/DIMNLRgS4tQ77g+2G9GsB3lEIRVlLozbvIZho626F/f4QBKZbQB3N4
//lb9MOPkawBnnIjQyp2Fn5V06sNiqEDyHNP4Zw7YwCpq9M0v74JD5JoNu8DtYgLlBC82BvDo/8k
QqsIrk2GwdUTI8hzp2F2HlnbgEKhUueHNGMg0VxCC75p5vLI/n04J0fLFRpgEfrdD2DqY3Od4H7a
AGHuRPdrC/E8JJNB1zcRR6Cr0yxYBL1wGdnYRMSx+FVeM54gnusHg1hZ9Kro0jKSzSLHj+C88qIB
lxt30PUN8EK5MryocufGB0jFqs2afN7y/R8voHPz5tNuDEqeXydAY/wh28BQ0NS6+fxMEm9+EVnb
sPR79BAyeMDoQTyrjBiQcBWaJdQZApDNLZiZg1QKeeVFM6n2NqvN1zchn7eF+1oI1ihuDFoSVtc/
MhydLrUOV2+hd+/bYjrboa0VFpdRzyvLvx6jkSZ4VX8iELsCsr6B/uEzdGkVZ3MLOXUSjh+G5ILF
J8cJ3zCGkIi9MTz6E1V1Ij5YUr9T04Y8egw5fBAODhry89SY9zxQrxLk4k3Q042cPol895zl5+am
SgC7cw/9zXtw90toTSDHR5Cjh+BBEsnmzXTL+wy1jY5Ka1DLsYFQbRDAd/U8ZG0dllfQrTTS12vp
cH7JXELLbXRHRWOu3T9oVvrMOEByET76HE6PWZfm+BHo6cIZHYHZJMwvoak1a1+JQEe7ob2Rw1bH
d3TYglQN1T1ImvZLJRg9Cr17IblgrlLOLOX/al2sHr2+s5i7Tc9Y8D49Zn/dWCXjlI1WxK3MFeq4
ihhMvT2N/n4KibsmgP79SP9+9MQIrK0jG1tWw4uYOXd1wp7O2oC1kjKXWloxyykU0eQi3J6uBNey
vWst47sdjmNuOpu0VLxWtTEUun0EqkUW7gi6uYX3q/dw4q5Fz+EBa0S0JAyb91NrttUaEUEXltAH
ScPnqnDjtv3NFygbtVr3SIOeQqT9Xun/18MKdfcmHQeKJas1AmRZZ32uajTqBHODpR9NreH912+R
u/eRl55Dnn7SOjU+yGkg2MrCPM+Yn02a9qFSMFVfKA7SFLdKr1iEdLbqxsJD2UZYIp5XK6HQZ7cC
b32aVqhlBpZTcOGKAZ1LN5CTx80lBvuR9raqeYOUJkjJQ1Nr1tCcmQstMFqdWT0g0L0Hef4byNFD
6IMk+t6HsLpm0Hc7HBAEWg3l+Yeku2Hmo+oMLMOPruubcOUm3JuB29PoiRGr24cOQG+PdXBbE1YD
BPcrFOD2PYv8qfW6DKBq3aG+XuTUGPLqWWTksOH4XB59d8pSrxPbIf7ttEtQn+76iq5t81IJuuqX
pAiQzqBXbpgQuvcY9Bw9iowcto5tbw90tFlBks+jN25bGiqVrCQuy1Xsc3MTHOhDnj2FfGscOXLQ
sESiGfnOS5Q+u4iubVbWUw8HVLfkQnt2O9DVFcirqgvEqn+gVVILBCFg2llYRlfXkGu30c5269iO
jiDPPImcGEGLJXR5Fc1kKaO5QAJNcejZi4yNIs8/hZwcRXp70Lhr9080owN9yL4eWFz244ZfkFUb
a+ibUJ7fiV4Cii6QExFHVWOq23R96xiSlEposWj4f30Db3kVmZkzk3/peWuBgW1+lC/ysfrYCesB
Hj1kFVxnh0Xu8C5xawKGB2Bm1kpfpwyBGo5wnt+B7gE5F8gBTSIS3/WJsaAsDUY6g26mLd/nC1YU
9fZYK2tmlnK6PNCHPHcaeflF6yo1ur/jGLZoatrdRuBOqcIMqRQIII3tljTe8qreeQmdWIg0H0Xs
LFg2j169CfE4zl+8ZsBpacXiQCJhZj96FGlraTgPWFeZTNbyOVharve7HfiuSxeKKGkXSPn9gLJS
K1mqApEjC/Rxe7hRViPhfAHyORg6gPNXf44+esyEMNhvpfaBvsg2WUSIwcgX4N4MurFhc8pXwAGN
6XkVUq6iqyKyv1rrZRxgFYZF7M5228MfOgDdXdai9jyLASspg7dLK7atNTyInHkGuveY1rs6TZvt
rUhHO8RCB0+qAVUghFwOXV61esNx6jDytXBADtVVF1jG4kCVFkPZsbnZurBPPoaMjZoQ9nabAEol
dCuNLq0ic/NocsF6g8MDyKmTSCKBujHb+trF0HQGvT8L6bT1IJyddL9rHJADll1gEchGmQ/9ccTM
9qXncF550TYmg6getKm791id8MSjtrenCvE4kmiK+FREE9T6crj3R3IBPr1o8cTX/p8YB2RFWHQF
mSV0ZiZ8AxWQpjjOC08hZ542bf/hM0gu2tGVvV3IkUMw0A97OpC4i7a1lGv1CuapysPb7CYHhYs+
SOJ9ccX2+4JmXqgfENXXLnGAzZdGZdZFuY+wXmMlAUQdOgC9+9AHc9bOuvfAtqRV0ZYE0t1lDdSx
URg7YXV+LNxh2940I/RAEHPzcO0W3HtgACjEfN0RKnLKPaJIu64OHdZB7rsKd8XOzEQ1ooq6rqGz
uXn4/BLeHy/AVrp8DK2sj5t3YPq+NVBPj6FHDiJtrex6qFqv4Oot9NI12EpX5oAavTYcjXprkR9o
Crjrgt4BWQTyaoCoMqmC5gvwyRcwu2BR3BHCLURFkdQ6+vEF9PY9nAdz8MqL8NhxpK21IbaICDsY
JQ9NraMXr6I379ap0qqhuv9tqLoMnw8oHwuopkMeZBHhjosdFpoBlkU4UMb/ghUz124hxSIUijV7
h+X9d/W1l1rD+/0HyPwSfPub8PK4NU+q8nzD8wSFAjr9JXr3vtUY0SZmiP/oF9GoUOsmtXRZ9nlO
uvGptwrFMxM3gJsK/RKETr9FHphhtFEp9fffSyXr/V+6ZvjA8+DcC4bzqQSgRkFRszn44irMzVd6
BITzus9ORBFV/l5eTGh1EUGLAjdRbrhTkwW3eGZCgOsKl4BnqT7738CNohA4WJwfrTfT6OUbPvRt
hlMnrYtUD8yEectkLfdvbm372/q9J3lYeg7j9XrxzIQ47tSkIkwjehHRJEKxejLru4cP/zVYU7nO
dyCTQa/eRCffRqc+RmcXDCMEbbGy8CqdJzIZdCtt+42h057ROerEhcAF8bfRQv3EKnoRc/mLCNPu
1KTtB7jnJ1dFuSzKp6pkleBfuOQJgZSw1upp0heU5gvo1Vt4v/gfvP/4b7yrN62zVIo+yCFgcWYz
DVtptFismafRXPaSKj+XkOIi9CzwKXDZPT+5CtGu8C2QdwTGQEZAnfIpxwbu1sgQyu+DLfR7M6bZ
+7Nw4ih6/AjyyLB1j+Jx39z9msM/G1xzz1CTJggBlV5pdCOlsmES+eyp6qyIvGO82qgIwJFFlPMo
zwKdIP0PW4Rvv60n1hucTaKLy+j0feTaLfTQsHWQgm03R2AmCZkcDzXvtpPWHQvA+6p6HnQxpKTK
ZMXxiTbgLPAPwMuqQZ8gJGCJQk1l+88h5dX27VuaoXefHXlpb7VTI9fvwNp6JFbUXL9Tng/HA7su
A/xOlX8B3o1PTW7VWoCNDHaefq9CE+i3w0a/LQ7wSXWFUZPHsW2qdBZm5gxpimOUQiG6WVpHArvD
AaqK/C/wps9bJkyt+8hMcXxiAPiOKj8U4UX8jlHIDHwcUPlKIgsI0cNrrYfntepNvShfhQOie4RV
vhCNAxlF/xf4Gciv4+cnZ6t5bfjQlC+El4G/Ab6BPR9YGxjrMiL111e3oJHd06WexkN+KuJhPv+J
om8Cv4uff6uG+W0F4AuhCzgD/CXwTYUBMaC07eN2/++jovWiQhZ0FngflV8AU/GpyVSjS3diZB14
V+Ge2JMWr6rqUyLSDzTX2xKtVnjZ8qu+/zqfqfleFMgpmhTkU5B3FM4D02jU56vHQz06mxufcGP2
fPCIqp4U5HFgTIVjQA/Q1OiJsOrVlh+OlK9Ij3pfHlhGualwCdGLglwGbgmyGDv/yx0fqv4KD09P
dKM8AowqHEcYQrX88LSItGJuEnl4GiUGOIrGZJsYomhJEA87xWUPTys5DMNnVUiLqj08LbIIzKhy
A7guwnSA8B527FoAAMUzE+JOTWpx/PtxoF+VI8BhERkGBtQE0iMi3Qp7BHyhaDNKU7WZVOp6FCGv
xnAWIQ2sieoqsOwzPKv4j88jd4Cke36yUDgzIfGpyV0z838jqBqXQ81MLQAAACV0RVh0ZGF0ZTpj
cmVhdGUAMjAyMi0wMy0wN1QyMjoyMjo1MSswODowMIrr5IsAAAAldEVYdGRhdGU6bW9kaWZ5ADIw
MjItMDMtMDdUMjI6MjI6NTErMDg6MDD7tlw3AAAAIHRFWHRzb2Z0d2FyZQBodHRwczovL2ltYWdl
bWFnaWNrLm9yZ7zPHZ0AAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAXdEVY
dFRodW1iOjpJbWFnZTo6SGVpZ2h0ADY0vOCphAAAABZ0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAA2
NERPaQkAAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9wbmc/slZOAAAAF3RFWHRUaHVtYjo6
TVRpbWUAMTY0NjY2Mjk3MSESB0sAAAASdEVYdFRodW1iOjpTaXplADU0ODFCQntNb0MAAABHdEVY
dFRodW1iOjpVUkkAZmlsZTovLy9hcHAvdG1wL2ltYWdlbGMvaW1ndmlldzJfOV8xNjQ2NjUyNjM2
NDI4NDE1M18zMDJfWzBdJ4IKeAAAAABJRU5ErkJggg==" ></image>
</svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="none" d="M0 0h24v24H0z"/>
<path d="M1 3h4l7 12 7-12h4L12 22 1 3zm8.667 0L12 7l2.333-4h4.035L12 14 5.632 3h4.035z"/>
</svg>

After

Width:  |  Height:  |  Size: 200 B

@ -0,0 +1,6 @@
import { createApp } from 'vue';
import App from './App.vue';
import 'virtual:svg-icons-register';
createApp(App).mount('#app');

@ -0,0 +1,78 @@
import { UserConfigExport, ConfigEnv } from 'vite';
import { resolve } from 'path';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import { createStyleImportPlugin, ElementPlusResolve as ElementPlusStyleResolve } from 'vite-plugin-style-import';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import globalStyle from '@originjs/vite-plugin-global-style';
import removeConsole from 'vite-plugin-remove-console';
import legacy from '@vitejs/plugin-legacy';
export default ({ command, mode }: ConfigEnv): UserConfigExport => {
return {
resolve: {
alias: [
{
find: '@',
replacement: resolve(process.cwd(), 'src'),
},
{
find: '~',
replacement: resolve(process.cwd(), 'src/assets'),
},
],
},
plugins: [
vue(),
vueJsx(),
createSvgIconsPlugin({
iconDirs: [resolve(process.cwd(), 'src/icons')],
symbolId: 'icon-[dir]-[name]',
}),
createStyleImportPlugin({
include: ['**/*.js', '**/*.ts', '**/*.tsx', '**/*.jsx', '**/*.vue'],
resolves: [ElementPlusStyleResolve()],
}),
AutoImport({
include: [/\.[jt]sx?$/, /\.vue\??/],
imports: [
'vue',
'vue-router',
{
axios: [
['default', 'axios'], // import { default as axios } from 'axios',
],
},
{ lodash: [['*', '_']] },
{ dayjs: [['*', 'dayjs']] },
],
eslintrc: {
enabled: true,
filepath: './src/.eslintrc.json',
globalsPropValue: true,
},
dts: 'src/auto-imports.d.ts',
}),
Components({
dirs: ['src/components'],
extensions: ['vue', 'jsx', 'tsx', 'js', 'ts'],
deep: true,
resolvers: [ElementPlusResolver()],
dts: 'src/components.d.ts',
include: [/\.tsx$/, /\.jsx$/, /\.ts$/, /\.js$/, /\.vue$/, /\.vue\?vue/],
exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/],
}),
removeConsole(),
globalStyle({
sourcePath: 'src/styles',
}),
legacy({
targets: ['defaults', 'not IE 11'],
}),
],
};
};
Loading…
Cancel
Save