1. 小程序端

2. 视频优化
This commit is contained in:
李琦
2026-07-30 14:11:26 +08:00
parent caac2530bb
commit f36c2ae71e
17 changed files with 1647 additions and 1182 deletions

33
components.d.ts vendored
View File

@@ -7,10 +7,33 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
AppFooter: typeof import('./src/components/AppFooter.vue')['default']
AppLogos: typeof import('./src/components/AppLogos.vue')['default']
InputEntry: typeof import('./src/components/InputEntry.vue')['default']
WdButton: typeof import('wot-design-uni/components/wd-button/wd-button.vue')['default']
WdPopup: typeof import('wot-design-uni/components/wd-popup/wd-popup.vue')['default']
AmbientBackground: typeof import('./src/components/c-end/AmbientBackground.vue')['default']
AppFloatingTabbar: typeof import('./src/components/layout/AppFloatingTabbar.vue')['default']
AppNavbar: typeof import('./src/components/layout/AppNavbar.vue')['default']
AppPageShell: typeof import('./src/components/layout/AppPageShell.vue')['default']
ArtMenuGroup: typeof import('./src/components/c-end/ArtMenuGroup.vue')['default']
ArtMenuItem: typeof import('./src/components/c-end/ArtMenuItem.vue')['default']
ArtSearchBar: typeof import('./src/components/c-end/ArtSearchBar.vue')['default']
PostCard: typeof import('./src/components/c-end/PostCard.vue')['default']
ProfileHero: typeof import('./src/components/c-end/ProfileHero.vue')['default']
WdButton: typeof import('@wot-ui/ui/components/wd-button/wd-button.vue')['default']
WdConfigProvider: typeof import('@wot-ui/ui/components/wd-config-provider/wd-config-provider.vue')['default']
WdDialog: typeof import('@wot-ui/ui/components/wd-dialog/wd-dialog.vue')['default']
WdEmpty: typeof import('@wot-ui/ui/components/wd-empty/wd-empty.vue')['default']
WdForm: typeof import('@wot-ui/ui/components/wd-form/wd-form.vue')['default']
WdIcon: typeof import('@wot-ui/ui/components/wd-icon/wd-icon.vue')['default']
WdInput: typeof import('@wot-ui/ui/components/wd-input/wd-input.vue')['default']
WdLoading: typeof import('@wot-ui/ui/components/wd-loading/wd-loading.vue')['default']
WdLoadmore: typeof import('@wot-ui/ui/components/wd-loadmore/wd-loadmore.vue')['default']
WdNavbar: typeof import('@wot-ui/ui/components/wd-navbar/wd-navbar.vue')['default']
WdPicker: typeof import('@wot-ui/ui/components/wd-picker/wd-picker.vue')['default']
WdPopup: typeof import('@wot-ui/ui/components/wd-popup/wd-popup.vue')['default']
WdSwitch: typeof import('@wot-ui/ui/components/wd-switch/wd-switch.vue')['default']
WdTab: typeof import('@wot-ui/ui/components/wd-tab/wd-tab.vue')['default']
WdTabbar: typeof import('@wot-ui/ui/components/wd-tabbar/wd-tabbar.vue')['default']
WdTabbarItem: typeof import('@wot-ui/ui/components/wd-tabbar-item/wd-tabbar-item.vue')['default']
WdTabs: typeof import('@wot-ui/ui/components/wd-tabs/wd-tabs.vue')['default']
WdTextarea: typeof import('@wot-ui/ui/components/wd-textarea/wd-textarea.vue')['default']
WdToast: typeof import('@wot-ui/ui/components/wd-toast/wd-toast.vue')['default']
}
}

View File

@@ -1,5 +1,5 @@
{
"name": "myd-pms-wx",
"name": "blog-wot-uniapp",
"type": "module",
"version": "0.1.0",
"private": true,
@@ -61,10 +61,13 @@
"@dcloudio/uni-mp-weixin": "3.0.0-4070620250821001",
"@dcloudio/uni-mp-xhs": "3.0.0-4070620250821001",
"@dcloudio/uni-quickapp-webview": "3.0.0-4070620250821001",
"@wot-ui/ui": "^2.2.0",
"highlight.js": "^11.11.1",
"marked": "^18.0.7",
"mp-html": "^2.5.2",
"pinia": "2.2.4",
"vue": "3.4.21",
"vue-i18n": "9.6.2",
"wot-design-uni": "^1.12.4"
"vue-i18n": "9.6.2"
},
"devDependencies": {
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
@@ -83,7 +86,7 @@
"@vue/tsconfig": "^0.8.1",
"eslint": "^9.36.0",
"miniprogram-api-typings": "^4.1.0",
"sass": "1.64.2",
"sass": "1.102.0",
"typescript": "^5.9.2",
"vite": "5.2.8",
"vue-tsc": "^3.0.7"

2013
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,70 @@
<script setup lang="ts">
import { onLaunch } from '@dcloudio/uni-app'
import { onLaunch, onShow } from '@dcloudio/uni-app'
import { watch } from 'vue'
import { useAppMode } from '@/composables/useAppMode'
import { useAuth } from '@/composables/useAuth'
import { useTheme } from '@/composables/useTheme'
import { usePublicSettings } from '@/composables/usePublicSettings'
import { wxLoginApi } from '@/api'
onLaunch(() => {})
const { hydrateAppMode, setLoginType } = useAppMode()
const { scheduleExpiryCheck, isAuthenticated, sessionExpired, confirmSessionExpired, login, getUser } = useAuth()
const { apply } = useTheme()
const { load } = usePublicSettings()
watch(sessionExpired, (v) => {
if (!v) return
uni.showModal({
title: '登录已过期',
content: '请重新登录',
showCancel: false,
success: () => confirmSessionExpired(),
})
})
async function silentWxLogin() {
// #ifdef MP-WEIXIN
if (isAuthenticated()) return
try {
const loginRes = await new Promise<UniApp.LoginRes>((resolve, reject) => {
uni.login({
provider: 'weixin',
success: resolve,
fail: reject,
})
})
if (!loginRes.code) return
const res = await wxLoginApi(loginRes.code)
login(res.token, { ...res.user }, res.expire)
setLoginType('guest')
}
catch (e) {
console.warn('[wx-login]', e)
}
// #endif
}
onLaunch(async () => {
apply()
hydrateAppMode()
await load()
await silentWxLogin()
if (isAuthenticated()) {
scheduleExpiryCheck()
const u = getUser()
if (u.role) {
// keep loginType consistent after silent login
}
}
})
onShow(() => {
apply()
hydrateAppMode()
})
</script>
<style></style>
<style lang="scss">
@import '@/styles/art-fonts.scss';
@import '@/styles/art-tokens.scss';
</style>

View File

@@ -1,34 +0,0 @@
<script setup lang="ts">
function handleClickGithub() {
if (window?.open) {
window.open('https://github.com/uni-helper/create-uni')
}
else {
uni.showToast({
icon: 'none',
title: '请使用浏览器打开',
})
}
}
</script>
<template>
<view class="footer" @click="handleClickGithub">
<image class="uni-helper-github__image" src="/static/github.svg" />
</view>
</template>
<style>
.footer{
position: absolute;
bottom: 1rem;
left: 50%;
transform: translateX(-50%);
color: #888;
}
.uni-helper-github__image {
display: inline-block;
height: 1em;
width: 1em;
}
</style>

View File

@@ -1,59 +0,0 @@
<script setup lang="ts">
</script>
<template>
<view class="container">
<view class="uni-helper-logo">
<image class="uni-helper-logo__image" src="/static/logo.svg" />
<text class="uni-helper-logo__label green">
uni-helper
</text>
</view>
<text class="link-bar">
+
</text>
<view class="uni-helper-logo">
<image class="uni-helper-logo__image" src="/static/vite.png" />
<text class="uni-helper-logo__label purple">
Vite
</text>
</view>
</view>
</template>
<style scoped lang="scss">
.container {
display: inline-flex;
font-size: 1.5rem;
font-weight: 300;
&:hover {
.link-bar {
transform: rotate(135deg);
}
}
}
.uni-helper-logo {
display: flex;
flex-direction: column;
align-items: center;
.uni-helper-logo__image {
display: inline-block;
height: 4.5rem;
width: 4.5rem;
}
.uni-helper-logo__label {
margin-top: -0.5rem;
}
.green {
color: #22c55e;
};
.purple {
color: #a855f7;
}
}
.link-bar {
color: #9ca3af;
margin: auto 1em;
transition: all 500ms cubic-bezier(0.4, 0, 0.2, 1);
}
</style>

View File

@@ -1,36 +0,0 @@
<script setup lang="ts">
import { ref } from 'vue'
const name = ref('')
const popupShow = ref(false)
function handleClick() {
popupShow.value = true
}
</script>
<template>
<view class="input-box">
<input
v-model="name"
placeholder="What's your name?"
>
</view>
<view>
<wd-button :disabled="!name" @click="handleClick">
Hello
</wd-button>
</view>
<wd-popup v-model="popupShow" custom-style="padding: 30px 40px;">
Hello{{ ` ${name}` }} 👏
</wd-popup>
</template>
<style scoped lang="scss">
.input-box {
margin: 1rem;
padding: 0.5rem;
border-bottom: 1px solid gray;
}
</style>

View File

@@ -1,70 +1,74 @@
{
"name": "",
"appid": "",
"description": "",
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
"uniStatistics": {
"enable": false
},
"app-plus": {
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
"name" : "年糕崽崽",
"appid" : "__UNI__184857B",
"description" : "年糕崽崽数字花园 · UniApp",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
"uniStatistics" : {
"enable" : false
},
"modules": {},
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
"ios": {},
"sdkConfigs": {}
}
},
"h5": {
"darkmode": true,
"themeLocation": "theme.json"
},
"quickapp": {},
"mp-weixin": {
"appid": "wx67e73fb3c9882dfc",
"setting": {
"urlCheck": false
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
"modules" : {},
"distribute" : {
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
"ios" : {},
"sdkConfigs" : {}
}
},
"usingComponents": true,
"darkmode": true,
"themeLocation": "theme.json"
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"vueVersion": "3"
"h5" : {
"darkmode" : true,
"themeLocation" : "theme.json"
},
"quickapp" : {},
"mp-weixin" : {
"appid" : "wx8f3891eaad380949",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"darkmode" : true,
"themeLocation" : "theme.json",
"optimization" : {
"subPackages" : true
},
"lazyCodeLoading" : "requiredComponents"
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"vueVersion" : "3"
}

View File

@@ -1,26 +1,348 @@
{
"easycom": {
"autoscan": true,
"custom": {
"^wd-(.*)": "@wot-ui/ui/components/wd-$1/wd-$1.vue",
"^mp-html": "mp-html/dist/uni-app/components/mp-html/mp-html.vue",
"^Content(.*)": "@/subPackages/content/components/Content$1.vue",
"^Staff(.*)": "@/subPackages/content/components/Staff$1.vue"
}
},
"pages": [
{
"path": "pages/index",
"type": "home"
"path": "pages/home/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "首页",
"enablePullDownRefresh": true
}
},
{
"path": "pages/mine/mine",
"path": "pages/explore/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "功能入口",
"enablePullDownRefresh": true
}
},
{
"path": "pages/mine/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "我的",
"enablePullDownRefresh": false
"enablePullDownRefresh": true
}
}
],
"subPackages": [
{
"root": "subPackages/content",
"pages": [
{
"path": "pages/login/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "登录"
}
},
{
"path": "pages/theme/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "主题"
}
},
{
"path": "pages/blog/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "思考"
}
},
{
"path": "pages/blog/detail",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "文章",
"enablePullDownRefresh": true
}
},
{
"path": "pages/blog/ppt",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "PPT",
"enablePullDownRefresh": true
}
},
{
"path": "pages/columns/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "专栏"
}
},
{
"path": "pages/columns/detail",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "专栏详情",
"enablePullDownRefresh": true
}
},
{
"path": "pages/works/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "作品"
}
},
{
"path": "pages/works/detail",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "作品详情",
"enablePullDownRefresh": true
}
},
{
"path": "pages/videos/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "视频"
}
},
{
"path": "pages/videos/detail",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "视频详情",
"enablePullDownRefresh": true
}
},
{
"path": "pages/videos/album",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "专辑",
"enablePullDownRefresh": true
}
},
{
"path": "pages/snippets/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "代码"
}
},
{
"path": "pages/services/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "合作"
}
},
{
"path": "pages/about/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "关于"
}
}
]
},
{
"root": "subPackages/admin",
"pages": [
{
"path": "pages/dashboard/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "工作台"
}
},
{
"path": "pages/explore/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "功能入口"
}
},
{
"path": "pages/analytics/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "数据分析"
}
},
{
"path": "pages/resource/list",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "列表"
}
},
{
"path": "pages/resource/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑"
}
},
{
"path": "pages/profile/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "个人中心"
}
},
{
"path": "pages/posts/list",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "文章管理"
}
},
{
"path": "pages/posts/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑文章"
}
},
{
"path": "pages/works/list",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "作品管理"
}
},
{
"path": "pages/works/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑作品"
}
},
{
"path": "pages/videos/list",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "视频列表"
}
},
{
"path": "pages/videos/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑视频"
}
},
{
"path": "pages/video-albums/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑专辑"
}
},
{
"path": "pages/snippets/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑代码"
}
},
{
"path": "pages/columns/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑专栏"
}
},
{
"path": "pages/attachments/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "附件库"
}
},
{
"path": "pages/inquiries/list",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "合作咨询"
}
},
{
"path": "pages/about/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "关于页面"
}
},
{
"path": "pages/settings/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "全局配置"
}
},
{
"path": "pages/oss-configs/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "OSS配置"
}
},
{
"path": "pages/users/list",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "用户管理"
}
},
{
"path": "pages/users/form",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "编辑用户"
}
},
{
"path": "pages/logs/operation",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "操作日志"
}
},
{
"path": "pages/logs/access",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "访问日志"
}
}
]
}
],
"preloadRule": {
"pages/home/index": {
"network": "all",
"packages": ["subPackages/content"]
},
"pages/explore/index": {
"network": "all",
"packages": ["subPackages/content"]
}
},
"globalStyle": {
"backgroundColor": "@bgColor",
"backgroundColorBottom": "@bgColorBottom",
"backgroundColorTop": "@bgColorTop",
"backgroundTextStyle": "@bgTxtStyle",
"navigationBarBackgroundColor": "#000000",
"navigationBarBackgroundColor": "@navBgColor",
"navigationBarTextStyle": "@navTxtStyle",
"navigationBarTitleText": "Uni Creator",
"navigationBarTitleText": "年糕崽崽",
"navigationStyle": "custom"
},
"subPackages": []
}
}

View File

@@ -1,20 +0,0 @@
<script setup lang="ts">
import AppFooter from '@/components/AppFooter.vue'
import AppLogos from '@/components/AppLogos.vue'
import InputEntry from '@/components/InputEntry.vue'
</script>
<template>
<view class="root-container">
<AppLogos />
<InputEntry />
<AppFooter />
</view>
</template>
<style scoped>
.root-container {
padding: 5rem 2.5rem;
text-align: center;
}
</style>

View File

@@ -1,14 +0,0 @@
<template>
<view>
</view>
</template>
<script setup lang="ts">
</script>
<style scoped lang="scss">
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -1,10 +0,0 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useCounterStore = defineStore('counter', () => {
const count = ref(0)
function increment() {
count.value++
}
return { count, increment }
})

View File

@@ -1,26 +1,26 @@
{
"light": {
"bgColor": "#fcfcfc",
"bgColorBottom": "#fcfcfc",
"bgColorTop": "#ff6b00",
"bgColor": "#faf8f4",
"bgColorBottom": "#faf8f4",
"bgColorTop": "#faf8f4",
"bgTxtStyle": "dark",
"navBgColor": "#ff6b00",
"navTxtStyle": "white",
"tabBgColor": "#fcfcfc",
"navBgColor": "#faf8f4",
"navTxtStyle": "black",
"tabBgColor": "#ffffff",
"tabBorderStyle": "black",
"tabFontColor": "#1f2937",
"tabSelectedColor": "#ff6b00"
"tabFontColor": "#6b6b6b",
"tabSelectedColor": "#d4b383"
},
"dark": {
"bgColor": "#181818",
"bgColorBottom": "#181818",
"bgColorTop": "#ff6b00",
"bgColor": "#050505",
"bgColorBottom": "#050505",
"bgColorTop": "#050505",
"bgTxtStyle": "light",
"navBgColor": "#ff6b00",
"navBgColor": "#050505",
"navTxtStyle": "white",
"tabBgColor": "#181818",
"tabBgColor": "#121214",
"tabBorderStyle": "white",
"tabFontColor": "#f3f4f6",
"tabSelectedColor": "#ff6b00"
"tabFontColor": "#888888",
"tabSelectedColor": "#d4b383"
}
}

View File

@@ -15,7 +15,7 @@
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-primary: #d4b383;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;

View File

@@ -23,7 +23,7 @@
"@dcloudio/types",
"@mini-types/alipay",
"miniprogram-api-typings",
"wot-design-uni/global.d.ts",
"@wot-ui/ui/global",
"@uni-helper/uni-types"
]
},

View File

@@ -1,25 +1,27 @@
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import Components from '@uni-helper/vite-plugin-uni-components'
import { WotResolver } from '@uni-helper/vite-plugin-uni-components/resolvers'
import Uni from '@uni-helper/plugin-uni'
import { WotResolver } from './src/resolvers/wot-ui-resolver'
export default defineConfig({
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
css: {
preprocessorOptions: {
scss: {
silenceDeprecations: ['legacy-js-api', 'import'],
},
},
},
plugins: [
Components({
dts: true,
resolvers: [WotResolver()]
resolvers: [WotResolver()],
}),
// https://uni-helper.js.org/plugin-uni
Uni(),
Uni(),
],
})