Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eff3277513 | ||
|
|
d2b532a760 | ||
|
|
de415aeafa | ||
|
|
af2809ec73 | ||
|
|
2545739964 | ||
|
|
d052f60953 | ||
|
|
7f1e157dab | ||
|
|
ca57625cea | ||
|
|
64332a93dd | ||
|
|
ea37bb9dff | ||
|
|
939f92da38 | ||
|
|
40d24ae1af | ||
|
|
8b8bef1bff | ||
|
|
b48df2945b | ||
|
|
7cce654633 |
@@ -11,6 +11,7 @@ lerna-debug.log*
|
||||
coverage
|
||||
*.local
|
||||
|
||||
dist
|
||||
node_modules
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
|
||||
4
.github/workflows/docker-image-ci.yml
vendored
4
.github/workflows/docker-image-ci.yml
vendored
@@ -37,5 +37,5 @@ jobs:
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: |
|
||||
ghcr.io/${{ github.repository_owner }}/douyin:${{ steps.vars.outputs.version }}
|
||||
ghcr.io/${{ github.repository_owner }}/douyin:latest
|
||||
ghcr.io/${{ github.repository_owner }}/douyin-vue:${{ steps.vars.outputs.version }}
|
||||
ghcr.io/${{ github.repository_owner }}/douyin-vue:latest
|
||||
@@ -5,12 +5,13 @@ ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN corepack enable
|
||||
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
WORKDIR /src
|
||||
COPY ./ ./
|
||||
|
||||
# RUN两次方便观察install和build, 也可以用pnpm cache and locked
|
||||
RUN pnpm install && pnpm run build
|
||||
RUN pnpm install
|
||||
RUN npm run build
|
||||
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64,linux/arm64} ghcr.io/rookie-luochao/nginx-runner:latest
|
||||
|
||||
COPY --from=builder /app/dist .
|
||||
COPY --from=builder /src/dist /app
|
||||
10
README.md
10
README.md
@@ -51,10 +51,18 @@ Github Pages: [https://dy.ttentau.top/](https://dy.ttentau.top/)
|
||||
## 运行
|
||||
注意:本项目仅适用于学习和研究,不得用于商业使用
|
||||
|
||||
### 快速部署至Vercel
|
||||
### 快速部署至 Vercel
|
||||
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/zyronon/douyin)
|
||||
|
||||
### 部署到 Docker
|
||||
```bash
|
||||
# pull Docker image
|
||||
docker pull ghcr.io/zyronon/douyin-vue:latest
|
||||
|
||||
# start container, nginx reverse proxy custom port, for example: docker run -d -p 80:80 ghcr.io/zyronon/douyin-vue:latest
|
||||
docker run -d -p 80:80 ghcr.io/zyronon/douyin-vue:latest
|
||||
```
|
||||
### 本地开发
|
||||
**注意:必须 git 命令 clone 下来才能运行,下载 zip 包是无法运行的。如果 clone 速度太慢,推荐使用 gitee 地址**
|
||||
|
||||
|
||||
@@ -2,11 +2,12 @@
|
||||
"name": "douyin-vue",
|
||||
"version": "1.1.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite --host",
|
||||
"start": "vite --host",
|
||||
"serve": "vite --host",
|
||||
"build": "vite build --mode prod",
|
||||
"build": "vite build",
|
||||
"test-del-json": "node node/remove-dist-json.js",
|
||||
"build-uni-app": "vite build --mode uni",
|
||||
"build-gp-pages": "vite build --mode gp_pages",
|
||||
@@ -39,7 +40,7 @@
|
||||
"@rushstack/eslint-patch": "^1.3.3",
|
||||
"@tsconfig/node20": "^20.1.2",
|
||||
"@types/node": "^20.11.28",
|
||||
"@vitejs/plugin-vue": "4.0.0",
|
||||
"@vitejs/plugin-vue": "^5.0.4",
|
||||
"@vitejs/plugin-vue-jsx": "^3.1.0",
|
||||
"@vue/eslint-config-prettier": "^8.0.0",
|
||||
"@vue/eslint-config-typescript": "^12.0.0",
|
||||
@@ -56,7 +57,7 @@
|
||||
"rollup-plugin-visualizer": "^5.9.2",
|
||||
"typescript": "5.3.3",
|
||||
"unplugin-vue-macros": "^2.9.1",
|
||||
"vite": "^5.1.7",
|
||||
"vite": "^5.2.0",
|
||||
"vite-plugin-cdn-import": "0.3.5",
|
||||
"vue-tsc": "^2.0.6"
|
||||
},
|
||||
|
||||
308
pnpm-lock.yaml
generated
308
pnpm-lock.yaml
generated
@@ -53,11 +53,11 @@ devDependencies:
|
||||
specifier: ^20.11.28
|
||||
version: 20.12.4
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: 4.0.0
|
||||
version: 4.0.0(vite@5.1.7)(vue@3.4.21)
|
||||
specifier: ^5.0.4
|
||||
version: 5.0.4(vite@5.2.10)(vue@3.4.21)
|
||||
'@vitejs/plugin-vue-jsx':
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0(vite@5.1.7)(vue@3.4.21)
|
||||
version: 3.1.0(vite@5.2.10)(vue@3.4.21)
|
||||
'@vue/eslint-config-prettier':
|
||||
specifier: ^8.0.0
|
||||
version: 8.0.0(eslint@8.57.0)(prettier@3.2.5)
|
||||
@@ -102,10 +102,10 @@ devDependencies:
|
||||
version: 5.3.3
|
||||
unplugin-vue-macros:
|
||||
specifier: ^2.9.1
|
||||
version: 2.9.1(rollup@2.79.1)(typescript@5.3.3)(vite@5.1.7)(vue@3.4.21)
|
||||
version: 2.9.1(rollup@2.79.1)(typescript@5.3.3)(vite@5.2.10)(vue@3.4.21)
|
||||
vite:
|
||||
specifier: ^5.1.7
|
||||
version: 5.1.7(@types/node@20.12.4)(less@4.1.3)
|
||||
specifier: ^5.2.0
|
||||
version: 5.2.10(@types/node@20.12.4)(less@4.1.3)
|
||||
vite-plugin-cdn-import:
|
||||
specifier: 0.3.5
|
||||
version: 0.3.5(rollup@2.79.1)
|
||||
@@ -672,8 +672,8 @@ packages:
|
||||
chalk: 5.3.0
|
||||
dev: true
|
||||
|
||||
/@esbuild/aix-ppc64@0.19.12:
|
||||
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
|
||||
/@esbuild/aix-ppc64@0.20.2:
|
||||
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ppc64]
|
||||
os: [aix]
|
||||
@@ -681,8 +681,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/android-arm64@0.19.12:
|
||||
resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
|
||||
/@esbuild/android-arm64@0.20.2:
|
||||
resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
@@ -690,8 +690,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/android-arm@0.19.12:
|
||||
resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
|
||||
/@esbuild/android-arm@0.20.2:
|
||||
resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
@@ -699,8 +699,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/android-x64@0.19.12:
|
||||
resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
|
||||
/@esbuild/android-x64@0.20.2:
|
||||
resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
@@ -708,8 +708,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/darwin-arm64@0.19.12:
|
||||
resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
|
||||
/@esbuild/darwin-arm64@0.20.2:
|
||||
resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
@@ -717,8 +717,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/darwin-x64@0.19.12:
|
||||
resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
|
||||
/@esbuild/darwin-x64@0.20.2:
|
||||
resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
@@ -726,8 +726,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/freebsd-arm64@0.19.12:
|
||||
resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
|
||||
/@esbuild/freebsd-arm64@0.20.2:
|
||||
resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
@@ -735,8 +735,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/freebsd-x64@0.19.12:
|
||||
resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
|
||||
/@esbuild/freebsd-x64@0.20.2:
|
||||
resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
@@ -744,8 +744,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-arm64@0.19.12:
|
||||
resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
|
||||
/@esbuild/linux-arm64@0.20.2:
|
||||
resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
@@ -753,8 +753,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-arm@0.19.12:
|
||||
resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
|
||||
/@esbuild/linux-arm@0.20.2:
|
||||
resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
@@ -762,8 +762,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-ia32@0.19.12:
|
||||
resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
|
||||
/@esbuild/linux-ia32@0.20.2:
|
||||
resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
@@ -771,8 +771,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-loong64@0.19.12:
|
||||
resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
|
||||
/@esbuild/linux-loong64@0.20.2:
|
||||
resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
@@ -780,8 +780,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-mips64el@0.19.12:
|
||||
resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
|
||||
/@esbuild/linux-mips64el@0.20.2:
|
||||
resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [mips64el]
|
||||
os: [linux]
|
||||
@@ -789,8 +789,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-ppc64@0.19.12:
|
||||
resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
|
||||
/@esbuild/linux-ppc64@0.20.2:
|
||||
resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
@@ -798,8 +798,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-riscv64@0.19.12:
|
||||
resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
|
||||
/@esbuild/linux-riscv64@0.20.2:
|
||||
resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
@@ -807,8 +807,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-s390x@0.19.12:
|
||||
resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
|
||||
/@esbuild/linux-s390x@0.20.2:
|
||||
resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
@@ -816,8 +816,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/linux-x64@0.19.12:
|
||||
resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
|
||||
/@esbuild/linux-x64@0.20.2:
|
||||
resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
@@ -825,8 +825,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/netbsd-x64@0.19.12:
|
||||
resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
|
||||
/@esbuild/netbsd-x64@0.20.2:
|
||||
resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [netbsd]
|
||||
@@ -834,8 +834,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/openbsd-x64@0.19.12:
|
||||
resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
|
||||
/@esbuild/openbsd-x64@0.20.2:
|
||||
resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [openbsd]
|
||||
@@ -843,8 +843,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/sunos-x64@0.19.12:
|
||||
resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
|
||||
/@esbuild/sunos-x64@0.20.2:
|
||||
resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [sunos]
|
||||
@@ -852,8 +852,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/win32-arm64@0.19.12:
|
||||
resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
|
||||
/@esbuild/win32-arm64@0.20.2:
|
||||
resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
@@ -861,8 +861,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/win32-ia32@0.19.12:
|
||||
resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
|
||||
/@esbuild/win32-ia32@0.20.2:
|
||||
resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
@@ -870,8 +870,8 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@esbuild/win32-x64@0.19.12:
|
||||
resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
|
||||
/@esbuild/win32-x64@0.20.2:
|
||||
resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
|
||||
engines: {node: '>=12'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
@@ -1356,7 +1356,7 @@ packages:
|
||||
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
||||
dev: true
|
||||
|
||||
/@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.7)(vue@3.4.21):
|
||||
/@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.10)(vue@3.4.21):
|
||||
resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -1366,20 +1366,20 @@ packages:
|
||||
'@babel/core': 7.24.3
|
||||
'@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
|
||||
'@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.3)
|
||||
vite: 5.1.7(@types/node@20.12.4)(less@4.1.3)
|
||||
vite: 5.2.10(@types/node@20.12.4)(less@4.1.3)
|
||||
vue: 3.4.21(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@vitejs/plugin-vue@4.0.0(vite@5.1.7)(vue@3.4.21):
|
||||
resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
/@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.21):
|
||||
resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
vite: ^4.0.0
|
||||
vite: ^5.0.0
|
||||
vue: ^3.2.25
|
||||
dependencies:
|
||||
vite: 5.1.7(@types/node@20.12.4)(less@4.1.3)
|
||||
vite: 5.2.10(@types/node@20.12.4)(less@4.1.3)
|
||||
vue: 3.4.21(typescript@5.3.3)
|
||||
dev: true
|
||||
|
||||
@@ -1567,7 +1567,7 @@ packages:
|
||||
- rollup
|
||||
dev: true
|
||||
|
||||
/@vue-macros/devtools@0.2.0(typescript@5.3.3)(vite@5.1.7):
|
||||
/@vue-macros/devtools@0.2.0(typescript@5.3.3)(vite@5.2.10):
|
||||
resolution: {integrity: sha512-jHjvY1bFgQLe/2+5pBOG4fgmL5MPhsqQDj7Barhj8YN+Oe7U2hBImvfAyOGpqd2uucLOWQTP1cWrp3q9b1svsg==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
peerDependencies:
|
||||
@@ -1577,7 +1577,7 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
sirv: 2.0.4
|
||||
vite: 5.1.7(@types/node@20.12.4)(less@4.1.3)
|
||||
vite: 5.2.10(@types/node@20.12.4)(less@4.1.3)
|
||||
vue: 3.4.21(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
@@ -2367,35 +2367,44 @@ packages:
|
||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||
engines: {node: '>=0.12'}
|
||||
|
||||
/esbuild@0.19.12:
|
||||
resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
|
||||
/errno@0.1.8:
|
||||
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
prr: 1.0.1
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/esbuild@0.20.2:
|
||||
resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
optionalDependencies:
|
||||
'@esbuild/aix-ppc64': 0.19.12
|
||||
'@esbuild/android-arm': 0.19.12
|
||||
'@esbuild/android-arm64': 0.19.12
|
||||
'@esbuild/android-x64': 0.19.12
|
||||
'@esbuild/darwin-arm64': 0.19.12
|
||||
'@esbuild/darwin-x64': 0.19.12
|
||||
'@esbuild/freebsd-arm64': 0.19.12
|
||||
'@esbuild/freebsd-x64': 0.19.12
|
||||
'@esbuild/linux-arm': 0.19.12
|
||||
'@esbuild/linux-arm64': 0.19.12
|
||||
'@esbuild/linux-ia32': 0.19.12
|
||||
'@esbuild/linux-loong64': 0.19.12
|
||||
'@esbuild/linux-mips64el': 0.19.12
|
||||
'@esbuild/linux-ppc64': 0.19.12
|
||||
'@esbuild/linux-riscv64': 0.19.12
|
||||
'@esbuild/linux-s390x': 0.19.12
|
||||
'@esbuild/linux-x64': 0.19.12
|
||||
'@esbuild/netbsd-x64': 0.19.12
|
||||
'@esbuild/openbsd-x64': 0.19.12
|
||||
'@esbuild/sunos-x64': 0.19.12
|
||||
'@esbuild/win32-arm64': 0.19.12
|
||||
'@esbuild/win32-ia32': 0.19.12
|
||||
'@esbuild/win32-x64': 0.19.12
|
||||
'@esbuild/aix-ppc64': 0.20.2
|
||||
'@esbuild/android-arm': 0.20.2
|
||||
'@esbuild/android-arm64': 0.20.2
|
||||
'@esbuild/android-x64': 0.20.2
|
||||
'@esbuild/darwin-arm64': 0.20.2
|
||||
'@esbuild/darwin-x64': 0.20.2
|
||||
'@esbuild/freebsd-arm64': 0.20.2
|
||||
'@esbuild/freebsd-x64': 0.20.2
|
||||
'@esbuild/linux-arm': 0.20.2
|
||||
'@esbuild/linux-arm64': 0.20.2
|
||||
'@esbuild/linux-ia32': 0.20.2
|
||||
'@esbuild/linux-loong64': 0.20.2
|
||||
'@esbuild/linux-mips64el': 0.20.2
|
||||
'@esbuild/linux-ppc64': 0.20.2
|
||||
'@esbuild/linux-riscv64': 0.20.2
|
||||
'@esbuild/linux-s390x': 0.20.2
|
||||
'@esbuild/linux-x64': 0.20.2
|
||||
'@esbuild/netbsd-x64': 0.20.2
|
||||
'@esbuild/openbsd-x64': 0.20.2
|
||||
'@esbuild/sunos-x64': 0.20.2
|
||||
'@esbuild/win32-arm64': 0.20.2
|
||||
'@esbuild/win32-ia32': 0.20.2
|
||||
'@esbuild/win32-x64': 0.20.2
|
||||
dev: true
|
||||
|
||||
/escalade@3.1.1:
|
||||
@@ -2819,6 +2828,14 @@ packages:
|
||||
engines: {node: '>= 4'}
|
||||
dev: true
|
||||
|
||||
/image-size@0.5.5:
|
||||
resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/import-fresh@3.3.0:
|
||||
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -3012,13 +3029,13 @@ packages:
|
||||
parse-node-version: 1.0.1
|
||||
tslib: 2.6.2
|
||||
optionalDependencies:
|
||||
errno: r2.cnpmjs.org/errno@0.1.8
|
||||
errno: 0.1.8
|
||||
graceful-fs: 4.2.11
|
||||
image-size: r2.cnpmjs.org/image-size@0.5.5
|
||||
make-dir: r2.cnpmjs.org/make-dir@2.1.0
|
||||
mime: r2.cnpmjs.org/mime@1.6.0
|
||||
image-size: 0.5.5
|
||||
make-dir: 2.1.0
|
||||
mime: 1.6.0
|
||||
needle: 3.3.1
|
||||
source-map: r2.cnpmjs.org/source-map@0.6.1
|
||||
source-map: 0.6.1
|
||||
dev: true
|
||||
|
||||
/levn@0.4.1:
|
||||
@@ -3148,6 +3165,16 @@ packages:
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.4.15
|
||||
|
||||
/make-dir@2.1.0:
|
||||
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
|
||||
engines: {node: '>=6'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
pify: 4.0.1
|
||||
semver: 5.7.2
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/meow@12.1.1:
|
||||
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
|
||||
engines: {node: '>=16.10'}
|
||||
@@ -3177,6 +3204,14 @@ packages:
|
||||
mime-db: 1.52.0
|
||||
dev: false
|
||||
|
||||
/mime@1.6.0:
|
||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/mimic-fn@2.1.0:
|
||||
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -3428,6 +3463,15 @@ packages:
|
||||
picocolors: 1.0.0
|
||||
source-map-js: 1.0.2
|
||||
|
||||
/postcss@8.4.38:
|
||||
resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
dependencies:
|
||||
nanoid: 3.3.7
|
||||
picocolors: 1.0.0
|
||||
source-map-js: 1.2.0
|
||||
dev: true
|
||||
|
||||
/prelude-ls@1.2.1:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
@@ -3678,6 +3722,18 @@ packages:
|
||||
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
/source-map-js@1.2.0:
|
||||
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/source-map@0.6.1:
|
||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/source-map@0.7.4:
|
||||
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -3836,7 +3892,7 @@ packages:
|
||||
engines: {node: '>= 10.0.0'}
|
||||
dev: true
|
||||
|
||||
/unplugin-combine@0.9.0(rollup@2.79.1)(vite@5.1.7):
|
||||
/unplugin-combine@0.9.0(rollup@2.79.1)(vite@5.2.10):
|
||||
resolution: {integrity: sha512-1bXgHXIhw/bNEFCwNnYRlOOcamsBNQObSWBuy3FcDcnMoFLIi4ZaMsi/L0cNxltfYBTS+QvGSZ1F+LgQ0vbcLg==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
peerDependencies:
|
||||
@@ -3857,7 +3913,7 @@ packages:
|
||||
'@antfu/utils': 0.7.7
|
||||
rollup: 2.79.1
|
||||
unplugin: 1.10.1
|
||||
vite: 5.1.7(@types/node@20.12.4)(less@4.1.3)
|
||||
vite: 5.2.10(@types/node@20.12.4)(less@4.1.3)
|
||||
dev: true
|
||||
|
||||
/unplugin-vue-define-options@1.4.3(rollup@2.79.1)(vue@3.4.21):
|
||||
@@ -3872,7 +3928,7 @@ packages:
|
||||
- vue
|
||||
dev: true
|
||||
|
||||
/unplugin-vue-macros@2.9.1(rollup@2.79.1)(typescript@5.3.3)(vite@5.1.7)(vue@3.4.21):
|
||||
/unplugin-vue-macros@2.9.1(rollup@2.79.1)(typescript@5.3.3)(vite@5.2.10)(vue@3.4.21):
|
||||
resolution: {integrity: sha512-r9y6e5GhUgRGzHr+Od9X6S2irdzwSAdU2BvSz0dXN00tDHNm/Y/iCn/Iypdzbe4ai9b09lMfB5MFUpT3jfOlQA==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
peerDependencies:
|
||||
@@ -3889,7 +3945,7 @@ packages:
|
||||
'@vue-macros/define-props-refs': 1.2.3(rollup@2.79.1)(vue@3.4.21)
|
||||
'@vue-macros/define-render': 1.5.3(rollup@2.79.1)(vue@3.4.21)
|
||||
'@vue-macros/define-slots': 1.1.3(rollup@2.79.1)(vue@3.4.21)
|
||||
'@vue-macros/devtools': 0.2.0(typescript@5.3.3)(vite@5.1.7)
|
||||
'@vue-macros/devtools': 0.2.0(typescript@5.3.3)(vite@5.2.10)
|
||||
'@vue-macros/export-expose': 0.1.3(rollup@2.79.1)(vue@3.4.21)
|
||||
'@vue-macros/export-props': 0.4.3(rollup@2.79.1)(vue@3.4.21)
|
||||
'@vue-macros/export-render': 0.2.3(rollup@2.79.1)(vue@3.4.21)
|
||||
@@ -3904,7 +3960,7 @@ packages:
|
||||
'@vue-macros/short-emits': 1.5.3(rollup@2.79.1)(vue@3.4.21)
|
||||
'@vue-macros/short-vmodel': 1.4.3(rollup@2.79.1)(vue@3.4.21)
|
||||
unplugin: 1.10.1
|
||||
unplugin-combine: 0.9.0(rollup@2.79.1)(vite@5.1.7)
|
||||
unplugin-combine: 0.9.0(rollup@2.79.1)(vite@5.2.10)
|
||||
unplugin-vue-define-options: 1.4.3(rollup@2.79.1)(vue@3.4.21)
|
||||
vue: 3.4.21(typescript@5.3.3)
|
||||
transitivePeerDependencies:
|
||||
@@ -3956,8 +4012,8 @@ packages:
|
||||
- rollup
|
||||
dev: true
|
||||
|
||||
/vite@5.1.7(@types/node@20.12.4)(less@4.1.3):
|
||||
resolution: {integrity: sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==}
|
||||
/vite@5.2.10(@types/node@20.12.4)(less@4.1.3):
|
||||
resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -3985,9 +4041,9 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/node': 20.12.4
|
||||
esbuild: 0.19.12
|
||||
esbuild: 0.20.2
|
||||
less: 4.1.3
|
||||
postcss: 8.4.35
|
||||
postcss: 8.4.38
|
||||
rollup: 4.14.0
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
@@ -4463,17 +4519,6 @@ packages:
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
|
||||
r2.cnpmjs.org/errno@0.1.8:
|
||||
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/errno/-/errno-0.1.8.tgz}
|
||||
name: errno
|
||||
version: 0.1.8
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
prr: 1.0.1
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
r2.cnpmjs.org/error-ex@1.3.2:
|
||||
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/error-ex/-/error-ex-1.3.2.tgz}
|
||||
name: error-ex
|
||||
@@ -4657,16 +4702,6 @@ packages:
|
||||
version: 1.2.1
|
||||
dev: true
|
||||
|
||||
r2.cnpmjs.org/image-size@0.5.5:
|
||||
resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/image-size/-/image-size-0.5.5.tgz}
|
||||
name: image-size
|
||||
version: 0.5.5
|
||||
engines: {node: '>=0.10.0'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
r2.cnpmjs.org/import-fresh@3.3.0:
|
||||
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/import-fresh/-/import-fresh-3.3.0.tgz}
|
||||
name: import-fresh
|
||||
@@ -4913,18 +4948,6 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
r2.cnpmjs.org/make-dir@2.1.0:
|
||||
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/make-dir/-/make-dir-2.1.0.tgz}
|
||||
name: make-dir
|
||||
version: 2.1.0
|
||||
engines: {node: '>=6'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
pify: 4.0.1
|
||||
semver: 5.7.2
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
r2.cnpmjs.org/merge2@1.4.1:
|
||||
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/merge2/-/merge2-1.4.1.tgz}
|
||||
name: merge2
|
||||
@@ -4938,16 +4961,6 @@ packages:
|
||||
version: 2.1.1
|
||||
dev: true
|
||||
|
||||
r2.cnpmjs.org/mime@1.6.0:
|
||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/mime/-/mime-1.6.0.tgz}
|
||||
name: mime
|
||||
version: 1.6.0
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
r2.cnpmjs.org/mimic-fn@2.1.0:
|
||||
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz}
|
||||
name: mimic-fn
|
||||
@@ -5153,15 +5166,6 @@ packages:
|
||||
version: 2.1.2
|
||||
dev: true
|
||||
|
||||
r2.cnpmjs.org/source-map@0.6.1:
|
||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/source-map/-/source-map-0.6.1.tgz}
|
||||
name: source-map
|
||||
version: 0.6.1
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
r2.cnpmjs.org/string-width@4.2.3:
|
||||
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: https://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/string-width/-/string-width-4.2.3.tgz}
|
||||
name: string-width
|
||||
|
||||
@@ -78,14 +78,16 @@ onMounted(() => {
|
||||
location.href = BASE_URL + '/'
|
||||
setVh()
|
||||
})
|
||||
//禁止选中文字
|
||||
document.onselectstart = new Function('return false') as any
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
@import './assets/less/index';
|
||||
|
||||
* {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
#app {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
||||
@@ -54,9 +54,7 @@
|
||||
},
|
||||
"cover": {
|
||||
"uri": "tos-cn-i-0813/oYVDeaFZyENAAAAKXCYfxD6hI4zADNAURgtySl",
|
||||
"url_list": [
|
||||
"jwWCPZVTIA4IKM-8WipLF.png"
|
||||
],
|
||||
"url_list": ["jwWCPZVTIA4IKM-8WipLF.png"],
|
||||
"width": 720,
|
||||
"height": 720
|
||||
},
|
||||
@@ -227,15 +225,11 @@
|
||||
"cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/f2196ddaa37f3097932d8a29ff0d0ca5",
|
||||
"url_list": [
|
||||
"AiIEMkIA7Cb3s5c4e7e6g.png"
|
||||
]
|
||||
"url_list": ["AiIEMkIA7Cb3s5c4e7e6g.png"]
|
||||
},
|
||||
{
|
||||
"uri": "c8510002be9a3a61aad2",
|
||||
"url_list": [
|
||||
"aHzLr77vcdBMUil15rXBa.png"
|
||||
]
|
||||
"url_list": ["aHzLr77vcdBMUil15rXBa.png"]
|
||||
}
|
||||
],
|
||||
"district": "",
|
||||
@@ -258,9 +252,7 @@
|
||||
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
|
||||
"share_image_url": {
|
||||
"uri": "tos-cn-p-0015/oge0HBDnlBbbZHjeDc4WtAI7AA0xb88gd9Ipjc",
|
||||
"url_list": [
|
||||
"5jTb5yW0_50o6UaLR5hvo.png"
|
||||
]
|
||||
"url_list": ["5jTb5yW0_50o6UaLR5hvo.png"]
|
||||
},
|
||||
"share_qrcode_url": {
|
||||
"uri": "216a001823018b74cedd",
|
||||
@@ -283,15 +275,11 @@
|
||||
"white_cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/f2196ddaa37f3097932d8a29ff0d0ca5",
|
||||
"url_list": [
|
||||
"N_SVO2HXIpaY04hgsXYDI.png"
|
||||
]
|
||||
"url_list": ["N_SVO2HXIpaY04hgsXYDI.png"]
|
||||
},
|
||||
{
|
||||
"uri": "318f1000413827e122102",
|
||||
"url_list": [
|
||||
"Sfz4PgDDqyNYHkFyXub5g.png"
|
||||
]
|
||||
"url_list": ["Sfz4PgDDqyNYHkFyXub5g.png"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -348,9 +336,7 @@
|
||||
},
|
||||
"cover": {
|
||||
"uri": "2071800047c9d7f961529",
|
||||
"url_list": [
|
||||
"_T0vQPZKXrNC6ulECmMes.png"
|
||||
],
|
||||
"url_list": ["_T0vQPZKXrNC6ulECmMes.png"],
|
||||
"width": 720,
|
||||
"height": 720
|
||||
},
|
||||
@@ -478,15 +464,11 @@
|
||||
"cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/f0e0fa1c47be6c2eedb3bbc077b2e89b",
|
||||
"url_list": [
|
||||
"eTzFhGSTt3FN9Wu_SwYfJ.png"
|
||||
]
|
||||
"url_list": ["eTzFhGSTt3FN9Wu_SwYfJ.png"]
|
||||
},
|
||||
{
|
||||
"uri": "c8510002be9a3a61aad2",
|
||||
"url_list": [
|
||||
"ycPju2wLo8QdUH3BhOHfP.png"
|
||||
]
|
||||
"url_list": ["ycPju2wLo8QdUH3BhOHfP.png"]
|
||||
}
|
||||
],
|
||||
"district": "",
|
||||
@@ -509,9 +491,7 @@
|
||||
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
|
||||
"share_image_url": {
|
||||
"uri": "tos-cn-p-0015/oMYiIAfY7PDPW4RWABzAIB6KeiygIB7AVxhctZ",
|
||||
"url_list": [
|
||||
"yynTGOW4ukH0o6ivqStEd.png"
|
||||
]
|
||||
"url_list": ["yynTGOW4ukH0o6ivqStEd.png"]
|
||||
},
|
||||
"share_qrcode_url": {
|
||||
"uri": "3306001c73315193d5b5",
|
||||
@@ -534,15 +514,11 @@
|
||||
"white_cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/f0e0fa1c47be6c2eedb3bbc077b2e89b",
|
||||
"url_list": [
|
||||
"3Lbs4vjci4a5PWPjuHqGO.png"
|
||||
]
|
||||
"url_list": ["3Lbs4vjci4a5PWPjuHqGO.png"]
|
||||
},
|
||||
{
|
||||
"uri": "318f1000413827e122102",
|
||||
"url_list": [
|
||||
"2QCe-HDrBnJc06gcYCeTW.png"
|
||||
]
|
||||
"url_list": ["2QCe-HDrBnJc06gcYCeTW.png"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -602,9 +578,7 @@
|
||||
},
|
||||
"cover": {
|
||||
"uri": "tos-cn-i-0813/oQKse1TDAG7fAI4EGEeLASDnAQEoABSnbJ2BvM",
|
||||
"url_list": [
|
||||
"NYLpBo9emIte6nynBBQNe.png"
|
||||
],
|
||||
"url_list": ["NYLpBo9emIte6nynBBQNe.png"],
|
||||
"width": 720,
|
||||
"height": 720
|
||||
},
|
||||
@@ -766,15 +740,11 @@
|
||||
"cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/c029dcead6fbf261d15b1ab7de43bf2f",
|
||||
"url_list": [
|
||||
"2eFwyUS9yN8r7wJCXHUvb.png"
|
||||
]
|
||||
"url_list": ["2eFwyUS9yN8r7wJCXHUvb.png"]
|
||||
},
|
||||
{
|
||||
"uri": "c8510002be9a3a61aad2",
|
||||
"url_list": [
|
||||
"0yrHnPaNjbwpkaPNo7s4x.png"
|
||||
]
|
||||
"url_list": ["0yrHnPaNjbwpkaPNo7s4x.png"]
|
||||
}
|
||||
],
|
||||
"district": "",
|
||||
@@ -797,9 +767,7 @@
|
||||
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
|
||||
"share_image_url": {
|
||||
"uri": "tos-cn-p-0015/oceLdA0zALBI8CoyKiCfhU69IBlNq4RsbgzSAu",
|
||||
"url_list": [
|
||||
"qnOWDz5lUek2B1I5MPHa-.png"
|
||||
]
|
||||
"url_list": ["qnOWDz5lUek2B1I5MPHa-.png"]
|
||||
},
|
||||
"share_qrcode_url": {
|
||||
"uri": "216a0023aa35c71d4381",
|
||||
@@ -822,15 +790,11 @@
|
||||
"white_cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/c029dcead6fbf261d15b1ab7de43bf2f",
|
||||
"url_list": [
|
||||
"ejF34o5i413UeROTNoYFI.png"
|
||||
]
|
||||
"url_list": ["ejF34o5i413UeROTNoYFI.png"]
|
||||
},
|
||||
{
|
||||
"uri": "318f1000413827e122102",
|
||||
"url_list": [
|
||||
"x9tjnPkC-OscQ480dZZAR.png"
|
||||
]
|
||||
"url_list": ["x9tjnPkC-OscQ480dZZAR.png"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -890,9 +854,7 @@
|
||||
},
|
||||
"cover": {
|
||||
"uri": "tos-cn-i-0813/oAgAlhXilAAJ6u5MAzCgDBGefASENIN9XA3lyP",
|
||||
"url_list": [
|
||||
"dRGIZeauclEl_diysOXxZ.png"
|
||||
],
|
||||
"url_list": ["dRGIZeauclEl_diysOXxZ.png"],
|
||||
"width": 720,
|
||||
"height": 720
|
||||
},
|
||||
@@ -1093,15 +1055,11 @@
|
||||
"cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/fc185d55c7e3c95a57f88ef99f6c5a63",
|
||||
"url_list": [
|
||||
"GH2GQ_6U9XovU9wyhraHy.png"
|
||||
]
|
||||
"url_list": ["GH2GQ_6U9XovU9wyhraHy.png"]
|
||||
},
|
||||
{
|
||||
"uri": "c8510002be9a3a61aad2",
|
||||
"url_list": [
|
||||
"Zd0yXNnpYUJtfs1PoJMQ2.png"
|
||||
]
|
||||
"url_list": ["Zd0yXNnpYUJtfs1PoJMQ2.png"]
|
||||
}
|
||||
],
|
||||
"district": null,
|
||||
@@ -1124,9 +1082,7 @@
|
||||
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
|
||||
"share_image_url": {
|
||||
"uri": "tos-cn-p-0015/o0lXhVW8g4D9AIzIlnIX23ftAOAzNet3BcBpzK",
|
||||
"url_list": [
|
||||
"ZRRKVy4ShmXRvpIEPMYoa.png"
|
||||
]
|
||||
"url_list": ["ZRRKVy4ShmXRvpIEPMYoa.png"]
|
||||
},
|
||||
"share_qrcode_url": {
|
||||
"uri": "6f940019bd6b1c90b090",
|
||||
@@ -1149,15 +1105,11 @@
|
||||
"white_cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/fc185d55c7e3c95a57f88ef99f6c5a63",
|
||||
"url_list": [
|
||||
"5mEqucAqJ1I440RfZH2t6.png"
|
||||
]
|
||||
"url_list": ["5mEqucAqJ1I440RfZH2t6.png"]
|
||||
},
|
||||
{
|
||||
"uri": "318f1000413827e122102",
|
||||
"url_list": [
|
||||
"72skmrYgEr7JkUqAbch-Q.png"
|
||||
]
|
||||
"url_list": ["72skmrYgEr7JkUqAbch-Q.png"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1217,9 +1169,7 @@
|
||||
},
|
||||
"cover": {
|
||||
"uri": "tos-cn-p-0015/e468ce3333034b1db0c987b00f2b5af3",
|
||||
"url_list": [
|
||||
"od74MFuaQhZyh-PZyPN1S.png"
|
||||
],
|
||||
"url_list": ["od74MFuaQhZyh-PZyPN1S.png"],
|
||||
"width": 720,
|
||||
"height": 720
|
||||
},
|
||||
@@ -1355,15 +1305,11 @@
|
||||
"cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/c029dcead6fbf261d15b1ab7de43bf2f",
|
||||
"url_list": [
|
||||
"2eFwyUS9yN8r7wJCXHUvb.png"
|
||||
]
|
||||
"url_list": ["2eFwyUS9yN8r7wJCXHUvb.png"]
|
||||
},
|
||||
{
|
||||
"uri": "c8510002be9a3a61aad2",
|
||||
"url_list": [
|
||||
"0yrHnPaNjbwpkaPNo7s4x.png"
|
||||
]
|
||||
"url_list": ["0yrHnPaNjbwpkaPNo7s4x.png"]
|
||||
}
|
||||
],
|
||||
"district": "",
|
||||
@@ -1386,9 +1332,7 @@
|
||||
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
|
||||
"share_image_url": {
|
||||
"uri": "tos-cn-p-0015/oceLdA0zALBI8CoyKiCfhU69IBlNq4RsbgzSAu",
|
||||
"url_list": [
|
||||
"qnOWDz5lUek2B1I5MPHa-.png"
|
||||
]
|
||||
"url_list": ["qnOWDz5lUek2B1I5MPHa-.png"]
|
||||
},
|
||||
"share_qrcode_url": {
|
||||
"uri": "216a0023aa35c71d4381",
|
||||
@@ -1411,15 +1355,11 @@
|
||||
"white_cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-image-file/c029dcead6fbf261d15b1ab7de43bf2f",
|
||||
"url_list": [
|
||||
"ejF34o5i413UeROTNoYFI.png"
|
||||
]
|
||||
"url_list": ["ejF34o5i413UeROTNoYFI.png"]
|
||||
},
|
||||
{
|
||||
"uri": "318f1000413827e122102",
|
||||
"url_list": [
|
||||
"x9tjnPkC-OscQ480dZZAR.png"
|
||||
]
|
||||
"url_list": ["x9tjnPkC-OscQ480dZZAR.png"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1479,9 +1419,7 @@
|
||||
},
|
||||
"cover": {
|
||||
"uri": "tos-cn-i-0813/5f0a61be754f42089db66c01854674bd",
|
||||
"url_list": [
|
||||
"Yo64h_V2GqTSG3CSkWOOY.png"
|
||||
],
|
||||
"url_list": ["Yo64h_V2GqTSG3CSkWOOY.png"],
|
||||
"width": 720,
|
||||
"height": 720
|
||||
},
|
||||
@@ -1654,15 +1592,11 @@
|
||||
"cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-file/4eec4c18569133d5990381a62ba49327",
|
||||
"url_list": [
|
||||
"fmO_JqQD-ukKguwbdyoiL.png"
|
||||
]
|
||||
"url_list": ["fmO_JqQD-ukKguwbdyoiL.png"]
|
||||
},
|
||||
{
|
||||
"uri": "c8510002be9a3a61aad2",
|
||||
"url_list": [
|
||||
"n3chqEY3p_JKnn2jSdd2b.png"
|
||||
]
|
||||
"url_list": ["n3chqEY3p_JKnn2jSdd2b.png"]
|
||||
}
|
||||
],
|
||||
"district": null,
|
||||
@@ -1685,9 +1619,7 @@
|
||||
"share_desc": "长按复制此条消息,打开抖音搜索,查看TA的更多作品。",
|
||||
"share_image_url": {
|
||||
"uri": "tos-cn-p-0015/o80AiAzNXCD7yDQlX88bABg7YfimvUQ49SneAq",
|
||||
"url_list": [
|
||||
"vE3YDSQkYb_YZdfgDRZU8.png"
|
||||
]
|
||||
"url_list": ["vE3YDSQkYb_YZdfgDRZU8.png"]
|
||||
},
|
||||
"share_qrcode_url": {
|
||||
"uri": "315100005802d9a7fc08a",
|
||||
@@ -1710,15 +1642,11 @@
|
||||
"white_cover_url": [
|
||||
{
|
||||
"uri": "douyin-user-file/4eec4c18569133d5990381a62ba49327",
|
||||
"url_list": [
|
||||
"OvKvfthk8TXKeVpwEkQNq.png"
|
||||
]
|
||||
"url_list": ["OvKvfthk8TXKeVpwEkQNq.png"]
|
||||
},
|
||||
{
|
||||
"uri": "318f1000413827e122102",
|
||||
"url_list": [
|
||||
"XIX6McGHe3ffHggOT8Rql.png"
|
||||
]
|
||||
"url_list": ["XIX6McGHe3ffHggOT8Rql.png"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ export default {
|
||||
},
|
||||
radius: {
|
||||
type: String,
|
||||
default: '3'
|
||||
default: '6'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -159,9 +159,9 @@ export default {
|
||||
}
|
||||
|
||||
&.white {
|
||||
background: white;
|
||||
background: white !important;
|
||||
color: black;
|
||||
border: 1px solid gainsboro;
|
||||
border: 1px solid gainsboro !important;
|
||||
}
|
||||
|
||||
&.info {
|
||||
|
||||
@@ -14,7 +14,7 @@ export default {
|
||||
@import '../assets/less/index';
|
||||
|
||||
.NoMore {
|
||||
font-size: 12rem;
|
||||
font-size: 13rem;
|
||||
height: 60rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<template>
|
||||
<Scroll :loading="state.loading" :full-loading="!state.list.length" @pulldown="loadData">
|
||||
<Scroll
|
||||
ref="scroll"
|
||||
:loading="state.loading"
|
||||
:full-loading="!state.list.length"
|
||||
@pulldown="loadData"
|
||||
>
|
||||
<slot :list="state.list"></slot>
|
||||
<NoMore v-if="state.total !== 0 && state.total === state.list.length" />
|
||||
</Scroll>
|
||||
@@ -10,6 +15,7 @@ import { onMounted, reactive } from 'vue'
|
||||
import { _notice } from '@/utils'
|
||||
import Scroll from '@/components/Scroll.vue'
|
||||
import NoMore from '@/components/NoMore.vue'
|
||||
import { useScroll } from '@/utils/hooks/useScroll.ts'
|
||||
|
||||
const props = defineProps({
|
||||
api: {
|
||||
@@ -19,6 +25,7 @@ const props = defineProps({
|
||||
}
|
||||
}
|
||||
})
|
||||
const scroll = useScroll()
|
||||
|
||||
const state = reactive({
|
||||
list: [],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script setup>
|
||||
import { reactive, ref, watch } from 'vue'
|
||||
import { _checkImgUrl, _duration, _formatNumber, _stopPropagation } from '@/utils'
|
||||
import { recommendedLongVideo, recommendedVideo } from '@/api/videos'
|
||||
import { recommendedLongVideo } from '@/api/videos'
|
||||
import ScrollList from '@/components/ScrollList.vue'
|
||||
import { useNav } from '@/utils/hooks/useNav'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="RequestUpdate" id="RequestUpdate">
|
||||
<BaseHeader>
|
||||
<BaseHeader :is-fixed="false">
|
||||
<template v-slot:center>
|
||||
<span class="f16">求更新</span>
|
||||
</template>
|
||||
@@ -112,9 +112,13 @@ function toggleRequestUpdate() {
|
||||
overflow: auto;
|
||||
color: white;
|
||||
font-size: 14rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.content {
|
||||
padding: 60rem 15rem 60rem 15rem;
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
padding: 15rem 15rem 60rem 15rem;
|
||||
|
||||
.none {
|
||||
display: flex;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div id="AllMessage">
|
||||
<BaseHeader>
|
||||
<BaseHeader :is-fixed="false">
|
||||
<template v-slot:center>
|
||||
<div class="center" @click="data.isShowType = !data.isShowType">
|
||||
<span class="f16">{{ showTypeText }}</span>
|
||||
@@ -43,112 +43,42 @@
|
||||
<div class="mask" @click="data.isShowType = false"></div>
|
||||
</div>
|
||||
</transition>
|
||||
<div class="content">
|
||||
<Loading v-if="data.loading" />
|
||||
<Scroll
|
||||
v-else
|
||||
ref="mainScroll"
|
||||
:use-refresh="true"
|
||||
:loading="data.loadingMore"
|
||||
@refresh="refresh"
|
||||
@pulldown="loadData"
|
||||
>
|
||||
<div class="messages">
|
||||
<div class="message" @click="nav('/message/visitors')">
|
||||
<div class="left">
|
||||
<img
|
||||
v-lazy="_checkImgUrl(store.userinfo.cover_url[0].url_list[0])"
|
||||
alt=""
|
||||
class="avatar"
|
||||
/>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="desc">
|
||||
<div class="top">
|
||||
<div class="name">主页访客</div>
|
||||
</div>
|
||||
<div class="desc-content">4人最近访问了你的主页,看看他们是谁</div>
|
||||
<div class="bottom">
|
||||
<div class="time">01-11</div>
|
||||
</div>
|
||||
</div>
|
||||
<img
|
||||
v-lazy="_checkImgUrl(store.userinfo.cover_url[0].url_list[0])"
|
||||
alt=""
|
||||
class="poster"
|
||||
/>
|
||||
</div>
|
||||
<Scroll ref="mainScroll">
|
||||
<div class="messages">
|
||||
<div
|
||||
class="message"
|
||||
v-for="(item, i) in store.friends.all"
|
||||
:key="i"
|
||||
@click="nav('/message/visitors')"
|
||||
>
|
||||
<div class="left">
|
||||
<img v-lazy="_checkImgUrl(item.avatar)" alt="" class="avatar" />
|
||||
</div>
|
||||
<div class="message" :key="i" v-for="(item, i) in showMessageList" @click="_no">
|
||||
<div class="left">
|
||||
<img v-lazy="_checkImgUrl(item.author.avatar)" alt="" class="avatar" />
|
||||
<img
|
||||
v-if="data.selectShowType === 2"
|
||||
src="@/assets/img/icon/message/love-message.webp"
|
||||
alt=""
|
||||
class="type"
|
||||
/>
|
||||
<img
|
||||
v-if="data.selectShowType === 3"
|
||||
src="@/assets/img/icon/message/call-message.webp"
|
||||
alt=""
|
||||
class="type"
|
||||
/>
|
||||
<img
|
||||
v-if="data.selectShowType === 4"
|
||||
src="@/assets/img/icon/message/comment-message.webp"
|
||||
alt=""
|
||||
class="type"
|
||||
/>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="desc">
|
||||
<div class="top">
|
||||
<div class="name">{{ item.author.nickname }}</div>
|
||||
<div class="tag">朋友</div>
|
||||
</div>
|
||||
<div class="desc-content">
|
||||
<span v-if="data.selectShowType === 1">好好看啊</span>
|
||||
<span v-if="data.selectShowType === 2">赞了你的作品</span>
|
||||
<span v-if="data.selectShowType === 3">@{{ store.userinfo.nickname }}</span>
|
||||
<span v-if="data.selectShowType === 4">好好看啊</span>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="type" v-if="data.selectShowType === 3">在评论中提到了你</div>
|
||||
<div class="type" v-if="data.selectShowType === 4">回复了你的评论</div>
|
||||
<div class="time">01-11</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="desc">
|
||||
<div class="name">{{ item.name }}</div>
|
||||
<div class="bottom">
|
||||
<div class="desc-content">近期访问过你的主页</div>
|
||||
<div class="time">01-11</div>
|
||||
</div>
|
||||
<img
|
||||
v-lazy="_checkImgUrl(item.video + '?vframe/jpg/offset/0/w/300')"
|
||||
alt=""
|
||||
class="poster"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="look-all" v-if="!data.showAll" @click="data.showAll = true">
|
||||
<span>查看全部</span>
|
||||
<dy-back />
|
||||
<img
|
||||
v-lazy="_checkImgUrl(store.userinfo.cover_url[0].url_list[0])"
|
||||
alt=""
|
||||
class="poster"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">
|
||||
<span>朋友推荐</span>
|
||||
<img src="@/assets/img/icon/about-gray.png" alt="" />
|
||||
</div>
|
||||
<Peoples v-model:list="data.recommend" :loading="data.loadingMore" mode="recommend" />
|
||||
</Scroll>
|
||||
</div>
|
||||
</div>
|
||||
</Scroll>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import Scroll from '@/components/Scroll.vue'
|
||||
import Loading from '@/components/Loading.vue'
|
||||
import Peoples from '../people/components/Peoples.vue'
|
||||
import resource from '@/assets/data/resource.js'
|
||||
import { useBaseStore } from '@/store/pinia'
|
||||
import { _checkImgUrl, _no, _sleep, cloneDeep } from '@/utils'
|
||||
import { _checkImgUrl } from '@/utils'
|
||||
|
||||
import { computed, onMounted, reactive } from 'vue'
|
||||
import { computed, reactive } from 'vue'
|
||||
import { useNav } from '@/utils/hooks/useNav.js'
|
||||
|
||||
defineOptions({
|
||||
@@ -158,20 +88,10 @@ defineOptions({
|
||||
const store = useBaseStore()
|
||||
const nav = useNav()
|
||||
const data = reactive({
|
||||
loading: false,
|
||||
loadingMore: false,
|
||||
isShowType: false,
|
||||
showAll: false,
|
||||
recommend: [],
|
||||
fans: [],
|
||||
messages: [],
|
||||
selectShowType: 1
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
getData()
|
||||
})
|
||||
|
||||
const showTypeText = computed(() => {
|
||||
switch (data.selectShowType) {
|
||||
case 1:
|
||||
@@ -187,52 +107,10 @@ const showTypeText = computed(() => {
|
||||
}
|
||||
})
|
||||
|
||||
const showMessageList = computed(() => {
|
||||
if (data.showAll) {
|
||||
return data.messages
|
||||
}
|
||||
return data.messages.slice(0, 2)
|
||||
})
|
||||
|
||||
async function getData() {
|
||||
data.loading = true
|
||||
await _sleep(800)
|
||||
data.loading = false
|
||||
data.recommend = cloneDeep(store.friends.all)
|
||||
data.fans = cloneDeep(store.friends.all)
|
||||
data.recommend.map((v) => {
|
||||
v.type = -1
|
||||
})
|
||||
data.messages = cloneDeep(resource.videos)
|
||||
}
|
||||
|
||||
function toggleShowType(index) {
|
||||
data.selectShowType = index
|
||||
data.isShowType = false
|
||||
}
|
||||
|
||||
// function remove(index) {
|
||||
// _notice('将不会再为你推荐该用户')
|
||||
// data.recommend.splice(index, 1)
|
||||
// }
|
||||
|
||||
async function refresh() {
|
||||
await _sleep(1000)
|
||||
//TODO
|
||||
// data.$refs.mainScroll.refreshEnd()
|
||||
}
|
||||
|
||||
async function loadData() {
|
||||
if (data.loadingMore) return
|
||||
data.loadingMore = true
|
||||
await _sleep(500)
|
||||
data.loadingMore = false
|
||||
let temp = cloneDeep(store.friends.all)
|
||||
temp.map((v) => {
|
||||
v.type = -1
|
||||
})
|
||||
data.recommend = data.recommend.concat(temp)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@@ -242,9 +120,12 @@ async function loadData() {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
background: var(--color-message);
|
||||
overflow: auto;
|
||||
color: white;
|
||||
font-size: 14rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.center {
|
||||
display: flex;
|
||||
@@ -254,6 +135,7 @@ async function loadData() {
|
||||
width: 15rem;
|
||||
transform: rotate(180deg);
|
||||
transition: all 0.3s;
|
||||
margin-left: 3rem;
|
||||
}
|
||||
|
||||
.show {
|
||||
@@ -269,10 +151,12 @@ async function loadData() {
|
||||
margin-top: var(--common-header-height);
|
||||
|
||||
.dialog-content {
|
||||
background: var(--main-bg);
|
||||
border-radius: 0 0 4rem 4rem;
|
||||
background: var(--color-message);
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
width: 16rem;
|
||||
width: 18rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,121 +169,82 @@ async function loadData() {
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0 var(--page-padding);
|
||||
padding-top: var(--common-header-height);
|
||||
.scroll {
|
||||
flex: 1;
|
||||
padding: 0 10rem;
|
||||
}
|
||||
|
||||
.scroll {
|
||||
height: calc(var(--vh, 1vh) * 100 - var(--common-header-height));
|
||||
}
|
||||
|
||||
.messages {
|
||||
.message {
|
||||
margin-bottom: 20rem;
|
||||
display: flex;
|
||||
|
||||
&:first-child {
|
||||
margin-top: 20rem;
|
||||
}
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
|
||||
.avatar {
|
||||
width: 48rem;
|
||||
height: 48rem;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.type {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 10rem;
|
||||
width: 17rem;
|
||||
padding: 2.5rem;
|
||||
border-radius: 50%;
|
||||
background: black;
|
||||
}
|
||||
|
||||
margin-right: 10rem;
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.desc {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
|
||||
.top {
|
||||
//margin-bottom: 10rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.tag {
|
||||
color: var(--second-text-color);
|
||||
padding: 1rem 4rem;
|
||||
margin-left: 10rem;
|
||||
border-radius: 2rem;
|
||||
background: var(--second-btn-color-tran);
|
||||
font-size: 10rem;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
//margin-top: 10rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 12rem;
|
||||
color: var(--second-text-color);
|
||||
|
||||
.type {
|
||||
margin-right: 10rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.poster {
|
||||
margin-left: 10rem;
|
||||
width: 64rem;
|
||||
height: 64rem;
|
||||
object-fit: cover;
|
||||
border-radius: 3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.look-all {
|
||||
font-size: 12rem;
|
||||
color: var(--second-text-color);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.close {
|
||||
margin-left: 10rem;
|
||||
transform: rotate(270deg) !important;
|
||||
width: 12rem;
|
||||
height: 12rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-top: 15rem;
|
||||
margin-bottom: 10rem;
|
||||
font-size: 12rem;
|
||||
.messages {
|
||||
.message {
|
||||
margin-bottom: 20rem;
|
||||
display: flex;
|
||||
gap: 10rem;
|
||||
|
||||
&:first-child {
|
||||
margin-top: 20rem;
|
||||
}
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
|
||||
.avatar {
|
||||
width: 58rem;
|
||||
height: 58rem;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.desc {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
gap: 5rem;
|
||||
color: white;
|
||||
font-size: 16rem;
|
||||
|
||||
.bottom {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 13rem;
|
||||
color: lightgrey;
|
||||
|
||||
.time {
|
||||
font-size: 12rem;
|
||||
margin-left: 10rem;
|
||||
color: var(--second-text-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.poster {
|
||||
margin-left: 10rem;
|
||||
width: 58rem;
|
||||
height: 70rem;
|
||||
object-fit: cover;
|
||||
border-radius: 3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.look-all {
|
||||
font-size: 12rem;
|
||||
color: var(--second-text-color);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
img {
|
||||
margin-left: 5rem;
|
||||
width: 13rem;
|
||||
.close {
|
||||
margin-left: 10rem;
|
||||
transform: rotate(270deg) !important;
|
||||
width: 12rem;
|
||||
height: 12rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ onMounted(getData)
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
overflow: auto;
|
||||
background: var(--color-message);
|
||||
color: white;
|
||||
font-size: 14rem;
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
</header>
|
||||
|
||||
<Scroll ref="mainScroll">
|
||||
<div class="friends pl1r">
|
||||
<div class="friends">
|
||||
<div
|
||||
class="friend pr1r pl1r"
|
||||
class="friend"
|
||||
@click="nav('/message/chat')"
|
||||
:key="index"
|
||||
v-for="(item, index) in store.friends.all"
|
||||
@@ -20,12 +20,13 @@
|
||||
</div>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
<div class="friend pr10p">
|
||||
<img src="../../assets/img/icon/message/setting.png" alt="" />
|
||||
<span class="ml1r">状态设置</span>
|
||||
<div class="friend">
|
||||
<div class="avatar">
|
||||
<img src="../../assets/img/icon/message/setting.png" alt="" />
|
||||
</div>
|
||||
<span>状态设置</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line mt2r"></div>
|
||||
<div class="messages">
|
||||
<!-- 粉丝-->
|
||||
<div class="message" @click="nav('/message/fans')">
|
||||
@@ -54,7 +55,7 @@
|
||||
<div class="name">
|
||||
<span>互动消息</span>
|
||||
</div>
|
||||
<div class="detail">xxx 赞了你的评论</div>
|
||||
<div class="detail">xxx 近期访问过你的主页</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<dy-back class="arrow" mode="gray" img="back" direction="right" />
|
||||
@@ -433,11 +434,13 @@ import { useBaseStore } from '@/store/pinia'
|
||||
import { computed, onMounted, reactive, watch } from 'vue'
|
||||
import { useNav } from '@/utils/hooks/useNav.js'
|
||||
import { _checkImgUrl, _sleep, cloneDeep } from '@/utils'
|
||||
import { useScroll } from '@/utils/hooks/useScroll'
|
||||
|
||||
defineOptions({
|
||||
name: 'Message'
|
||||
})
|
||||
|
||||
const mainScroll = useScroll()
|
||||
const store = useBaseStore()
|
||||
const nav = useNav()
|
||||
const data = reactive({
|
||||
@@ -521,6 +524,8 @@ async function loadRecommendData() {
|
||||
|
||||
.no-search {
|
||||
height: calc(var(--vh, 1vh) * 100);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
> header {
|
||||
padding: 0 20rem;
|
||||
@@ -772,36 +777,48 @@ async function loadRecommendData() {
|
||||
}
|
||||
|
||||
.scroll {
|
||||
height: calc(100% - var(--common-header-height) - var(--footer-height));
|
||||
flex: 1;
|
||||
padding-top: 10rem;
|
||||
padding-bottom: var(--footer-height);
|
||||
}
|
||||
|
||||
.friends {
|
||||
overflow-x: scroll;
|
||||
display: flex;
|
||||
font-size: 14rem;
|
||||
padding: 0 10rem;
|
||||
gap: 20rem;
|
||||
|
||||
.friend {
|
||||
@width: 70rem;
|
||||
width: @width;
|
||||
min-width: @width;
|
||||
|
||||
&:nth-last-child(1) {
|
||||
img {
|
||||
margin: 0 10rem;
|
||||
padding: 17rem;
|
||||
background: var(--second-btn-color-tran);
|
||||
width: 30rem;
|
||||
height: 30rem;
|
||||
.avatar {
|
||||
height: @width;
|
||||
border-radius: 50%;
|
||||
margin-bottom: 6rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: var(--second-btn-color-tran);
|
||||
margin-bottom: 10rem;
|
||||
|
||||
img {
|
||||
width: 35rem;
|
||||
height: 35rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.avatar {
|
||||
position: relative;
|
||||
margin-bottom: 6rem;
|
||||
width: 100%;
|
||||
|
||||
img {
|
||||
@width: 64rem;
|
||||
width: @width;
|
||||
height: @width;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
@@ -821,7 +838,7 @@ async function loadRecommendData() {
|
||||
span {
|
||||
width: 64rem;
|
||||
font-size: 12rem;
|
||||
color: lightgray;
|
||||
color: white;
|
||||
display: block;
|
||||
text-align: center;
|
||||
word-break: break-all;
|
||||
@@ -833,6 +850,8 @@ async function loadRecommendData() {
|
||||
}
|
||||
|
||||
.messages {
|
||||
margin-top: 20rem;
|
||||
|
||||
.message {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -874,12 +893,12 @@ async function loadRecommendData() {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@padding: 14rem;
|
||||
@padding: 16rem;
|
||||
padding: @padding 0 @padding 0;
|
||||
|
||||
.left {
|
||||
.name {
|
||||
font-size: 14rem;
|
||||
font-size: 16rem;
|
||||
color: white;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
@@ -896,7 +915,7 @@ async function loadRecommendData() {
|
||||
|
||||
.detail {
|
||||
color: var(--second-text-color);
|
||||
font-size: 12rem;
|
||||
font-size: 14rem;
|
||||
margin-top: 4rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -68,11 +68,13 @@ import { nextTick, onMounted, reactive, watch } from 'vue'
|
||||
import Scroll from '@/components/Scroll.vue'
|
||||
import { useNav } from '@/utils/hooks/useNav.js'
|
||||
import { _no, _sleep } from '@/utils'
|
||||
import { useScroll } from '@/utils/hooks/useScroll'
|
||||
|
||||
defineOptions({
|
||||
name: 'SystemNotice'
|
||||
})
|
||||
|
||||
const mainScroll = useScroll()
|
||||
const nav = useNav()
|
||||
const data = reactive({
|
||||
loading: false,
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
import { onActivated, onDeactivated } from 'vue'
|
||||
|
||||
export function useBase() {
|
||||
const mainScroll = $ref()
|
||||
const mainScrollTop = $ref(0)
|
||||
onActivated(() => {
|
||||
console.log('onActivated')
|
||||
})
|
||||
|
||||
onDeactivated(() => {
|
||||
console.log('onDeactivated')
|
||||
})
|
||||
}
|
||||
17
src/utils/hooks/useScroll.ts
Normal file
17
src/utils/hooks/useScroll.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { onActivated, onDeactivated, ref } from 'vue'
|
||||
|
||||
export function useScroll() {
|
||||
const mainScroll = ref()
|
||||
let mainScrollTop = $ref(0)
|
||||
onActivated(() => {
|
||||
if (mainScroll.value && mainScroll.value.wrapper) {
|
||||
mainScroll.value.wrapper.scrollTop = mainScrollTop
|
||||
}
|
||||
})
|
||||
onDeactivated(() => {
|
||||
if (mainScroll.value && mainScroll.value.wrapper) {
|
||||
mainScrollTop = mainScroll.value.wrapper.scrollTop
|
||||
}
|
||||
})
|
||||
return mainScroll
|
||||
}
|
||||
336
vite.config.ts
336
vite.config.ts
@@ -7,176 +7,176 @@ import { fileURLToPath, URL } from 'node:url'
|
||||
import { getLastCommit } from 'git-last-commit'
|
||||
import VueMacros from 'unplugin-vue-macros/vite'
|
||||
|
||||
// import viteImagemin from 'vite-plugin-imagemin'
|
||||
// import viteCompression from 'vite-plugin-compression'
|
||||
|
||||
const lifecycle = process.env.npm_lifecycle_event
|
||||
|
||||
// {
|
||||
// name: 'axios',
|
||||
// var: 'axios',
|
||||
// path: 'https://lib.baomitu.com/axios/1.6.8/axios.min.js'
|
||||
// },
|
||||
export default defineConfig(() => {
|
||||
let latestCommitHash = ''
|
||||
|
||||
export default defineConfig(async () => {
|
||||
const latestCommitHash = await new Promise<string>((resolve) => {
|
||||
return getLastCommit((err, commit) => (err ? 'unknown' : resolve(commit.shortHash)))
|
||||
})
|
||||
return {
|
||||
base: './',
|
||||
envDir: 'env',
|
||||
plugins: [
|
||||
VueMacros({
|
||||
plugins: {
|
||||
vue: Vue(),
|
||||
vueJsx: VueJsx() // if needed
|
||||
}
|
||||
// betterDefine: true,
|
||||
// reactivityTransform: {
|
||||
// exclude: [/node_modules/, /jQuery\.js/]
|
||||
// }
|
||||
}),
|
||||
// Vue(),
|
||||
// VueJsx(),
|
||||
lifecycle === 'report' ? (visualizer({ open: false }) as any as PluginOption) : null,
|
||||
importToCDN({
|
||||
modules: [
|
||||
{
|
||||
name: 'vue',
|
||||
var: 'Vue',
|
||||
path: `https://lib.baomitu.com/vue/3.4.21/vue.runtime.global.prod.min.js`
|
||||
},
|
||||
{
|
||||
name: 'vue-router',
|
||||
var: 'VueRouter',
|
||||
path: 'https://lib.baomitu.com/vue-router/4.3.0/vue-router.global.prod.min.js'
|
||||
},
|
||||
{
|
||||
name: 'vue-demi',
|
||||
var: 'VueDemi',
|
||||
path: 'https://lib.baomitu.com/vue-demi/0.14.7/index.iife.min.js'
|
||||
},
|
||||
{
|
||||
name: 'mockjs',
|
||||
var: 'Mock',
|
||||
path: 'https://lib.baomitu.com/Mock.js/1.0.1-beta3/mock-min.js'
|
||||
}
|
||||
]
|
||||
})
|
||||
// viteCompression({
|
||||
// verbose: false,
|
||||
// disable: false,
|
||||
// threshold: 10240,
|
||||
// algorithm: 'brotliCompress',
|
||||
// }),
|
||||
// viteCompression({
|
||||
// verbose: false,
|
||||
// disable: false,
|
||||
// algorithm: 'gzip',
|
||||
// threshold: 10240,
|
||||
// }),
|
||||
// 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,
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// }),
|
||||
],
|
||||
define: {
|
||||
LATEST_COMMIT_HASH: JSON.stringify(
|
||||
latestCommitHash + (process.env.NODE_ENV === 'production' ? '' : ' (dev)')
|
||||
)
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||||
},
|
||||
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
||||
},
|
||||
build: {
|
||||
sourcemap: false,
|
||||
rollupOptions: {
|
||||
// https://rollupjs.org/guide/en/#outputmanualchunks
|
||||
output: {
|
||||
manualChunks(id, { getModuleInfo }) {
|
||||
const reg = /(.*)\/src\/components\/(.*)/
|
||||
if (reg.test(id)) {
|
||||
const importersLen = getModuleInfo(id)?.importers.length ?? 0
|
||||
// 被多处引用
|
||||
if (importersLen > 1) return 'common'
|
||||
}
|
||||
if (id.includes('node_modules')) return 'vendor'
|
||||
|
||||
if (id.includes('/src/pages/home/Publish.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/home/Music.vue')) return 'other'
|
||||
if (id.includes('/src/pages/home/MusicRankList.vue')) return 'other'
|
||||
if (id.includes('/src/pages/home/LivePage.vue')) return 'other'
|
||||
if (id.includes('/src/pages/home/SearchPage.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/shop/Shop.vue')) return 'other'
|
||||
if (id.includes('/src/pages/shop/GoodsDetail.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/message/Message.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/Fans.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/AllMessage.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/DouyinHelper.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/SystemNotice.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/TaskNotice.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/LiveNotice.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/MoneyNotice.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/me/Me.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/Visitors.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/RequestUpdate.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/userinfo/EditUserInfo.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/userinfo/EditUserInfoItem.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/MyMusic.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/other/VideoDetail.vue')) return 'other'
|
||||
if (id.includes('/src/pages/other/AlbumDetail.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/people/FindAcquaintance.vue')) return 'other'
|
||||
if (id.includes('/src/pages/people/FollowAndFans.vue')) return 'other'
|
||||
},
|
||||
chunkFileNames: 'js/[name]-[hash].js', // 引入文件名的名称
|
||||
entryFileNames: 'js/[name]-[hash].js', // 包的入口文件名称
|
||||
assetFileNames: 'assets/[name]-[hash].[ext]' // 资源文件像 字体,图片等
|
||||
}
|
||||
},
|
||||
assetsInlineLimit: 2048
|
||||
},
|
||||
esbuild: {
|
||||
// drop: ['console', 'debugger']
|
||||
},
|
||||
server: {
|
||||
port: 3000,
|
||||
open: true,
|
||||
host: '0.0.0.0',
|
||||
fs: {
|
||||
strict: false
|
||||
return new Promise((resolve) => {
|
||||
getLastCommit((err, commit) => {
|
||||
if (!err) {
|
||||
latestCommitHash = commit.shortHash
|
||||
}
|
||||
}
|
||||
}
|
||||
resolve({
|
||||
base: './',
|
||||
envDir: 'env',
|
||||
plugins: [
|
||||
VueMacros({
|
||||
plugins: {
|
||||
vue: Vue(),
|
||||
vueJsx: VueJsx() // if needed
|
||||
}
|
||||
// betterDefine: true,
|
||||
// reactivityTransform: {
|
||||
// exclude: [/node_modules/, /jQuery\.js/]
|
||||
// }
|
||||
}),
|
||||
// Vue(),
|
||||
// VueJsx(),
|
||||
lifecycle === 'report' ? (visualizer({ open: false }) as any as PluginOption) : null,
|
||||
importToCDN({
|
||||
modules: [
|
||||
{
|
||||
name: 'vue',
|
||||
var: 'Vue',
|
||||
path: `https://lib.baomitu.com/vue/3.4.21/vue.runtime.global.prod.min.js`
|
||||
},
|
||||
{
|
||||
name: 'vue-router',
|
||||
var: 'VueRouter',
|
||||
path: 'https://lib.baomitu.com/vue-router/4.3.0/vue-router.global.prod.min.js'
|
||||
},
|
||||
{
|
||||
name: 'vue-demi',
|
||||
var: 'VueDemi',
|
||||
path: 'https://lib.baomitu.com/vue-demi/0.14.7/index.iife.min.js'
|
||||
},
|
||||
{
|
||||
name: 'mockjs',
|
||||
var: 'Mock',
|
||||
path: 'https://lib.baomitu.com/Mock.js/1.0.1-beta3/mock-min.js'
|
||||
}
|
||||
]
|
||||
})
|
||||
// viteCompression({
|
||||
// verbose: false,
|
||||
// disable: false,
|
||||
// threshold: 10240,
|
||||
// algorithm: 'brotliCompress',
|
||||
// }),
|
||||
// viteCompression({
|
||||
// verbose: false,
|
||||
// disable: false,
|
||||
// algorithm: 'gzip',
|
||||
// threshold: 10240,
|
||||
// }),
|
||||
// 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,
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// }),
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||||
},
|
||||
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
||||
},
|
||||
build: {
|
||||
sourcemap: false,
|
||||
rollupOptions: {
|
||||
// https://rollupjs.org/guide/en/#outputmanualchunks
|
||||
output: {
|
||||
manualChunks(id, { getModuleInfo }) {
|
||||
const reg = /(.*)\/src\/components\/(.*)/
|
||||
if (reg.test(id)) {
|
||||
const importersLen = getModuleInfo(id)?.importers.length ?? 0
|
||||
// 被多处引用
|
||||
if (importersLen > 1) return 'common'
|
||||
}
|
||||
if (id.includes('node_modules')) return 'vendor'
|
||||
|
||||
if (id.includes('/src/pages/home/Publish.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/home/Music.vue')) return 'other'
|
||||
if (id.includes('/src/pages/home/MusicRankList.vue')) return 'other'
|
||||
if (id.includes('/src/pages/home/LivePage.vue')) return 'other'
|
||||
if (id.includes('/src/pages/home/SearchPage.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/shop/Shop.vue')) return 'other'
|
||||
if (id.includes('/src/pages/shop/GoodsDetail.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/message/Message.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/Fans.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/AllMessage.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/DouyinHelper.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/SystemNotice.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/TaskNotice.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/LiveNotice.vue')) return 'other'
|
||||
if (id.includes('/src/pages/message/notice/MoneyNotice.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/me/Me.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/Visitors.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/RequestUpdate.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/userinfo/EditUserInfo.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/userinfo/EditUserInfoItem.vue')) return 'other'
|
||||
if (id.includes('/src/pages/me/MyMusic.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/other/VideoDetail.vue')) return 'other'
|
||||
if (id.includes('/src/pages/other/AlbumDetail.vue')) return 'other'
|
||||
|
||||
if (id.includes('/src/pages/people/FindAcquaintance.vue')) return 'other'
|
||||
if (id.includes('/src/pages/people/FollowAndFans.vue')) return 'other'
|
||||
},
|
||||
chunkFileNames: 'js/[name]-[hash].js', // 引入文件名的名称
|
||||
entryFileNames: 'js/[name]-[hash].js', // 包的入口文件名称
|
||||
assetFileNames: 'assets/[name]-[hash].[ext]' // 资源文件像 字体,图片等
|
||||
}
|
||||
},
|
||||
assetsInlineLimit: 2048
|
||||
},
|
||||
define: {
|
||||
LATEST_COMMIT_HASH: JSON.stringify(
|
||||
latestCommitHash + (process.env.NODE_ENV === 'production' ? '' : ' (dev)')
|
||||
)
|
||||
},
|
||||
esbuild: {
|
||||
// drop: ['console', 'debugger']
|
||||
},
|
||||
server: {
|
||||
port: 3000,
|
||||
open: true,
|
||||
host: '0.0.0.0',
|
||||
fs: {
|
||||
strict: false
|
||||
}
|
||||
},
|
||||
preview: {
|
||||
port: 5555
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user