create-young-proj 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/dist/index.mjs +2702 -42
- package/package.json +3 -3
- package/template-admin-server/package.json +2 -2
- package/template-vue-admin/package.json +1 -1
- package/template-vue-mobile/.vscode/base.code-snippets +24 -0
- package/template-vue-mobile/.vscode/extensions.json +10 -0
- package/template-vue-mobile/.vscode/settings.json +7 -0
- package/template-vue-mobile/Dockerfile +42 -0
- package/template-vue-mobile/README.md +71 -0
- package/template-vue-mobile/_env +6 -0
- package/template-vue-mobile/_gitignore +30 -0
- package/template-vue-mobile/boot.mjs +16 -0
- package/template-vue-mobile/build/custom-plugin.ts +30 -0
- package/template-vue-mobile/build/index.ts +7 -0
- package/template-vue-mobile/build/plugins.ts +68 -0
- package/template-vue-mobile/config/.devrc +2 -0
- package/template-vue-mobile/config/.onlinerc +1 -0
- package/template-vue-mobile/config/.testrc +1 -0
- package/template-vue-mobile/index.html +25 -0
- package/template-vue-mobile/nitro.config.ts +19 -0
- package/template-vue-mobile/package.json +48 -0
- package/template-vue-mobile/plugins/env.ts +26 -0
- package/template-vue-mobile/public/vite.svg +1 -0
- package/template-vue-mobile/rome.json +24 -0
- package/template-vue-mobile/routes/[...all].ts +11 -0
- package/template-vue-mobile/routes/get/env.ts +25 -0
- package/template-vue-mobile/src/App.vue +29 -0
- package/template-vue-mobile/src/auto-components.d.ts +24 -0
- package/template-vue-mobile/src/auto-imports.d.ts +289 -0
- package/template-vue-mobile/src/components/Init.vue +36 -0
- package/template-vue-mobile/src/global.d.ts +7 -0
- package/template-vue-mobile/src/hooks/useVerifyCode.ts +46 -0
- package/template-vue-mobile/src/layouts/blank.vue +9 -0
- package/template-vue-mobile/src/layouts/default.vue +27 -0
- package/template-vue-mobile/src/layouts/sub.vue +20 -0
- package/template-vue-mobile/src/main.ts +35 -0
- package/template-vue-mobile/src/modules/1-router.ts +40 -0
- package/template-vue-mobile/src/modules/2-pinia.ts +10 -0
- package/template-vue-mobile/src/modules/3-net.ts +46 -0
- package/template-vue-mobile/src/modules/4-auth.ts +64 -0
- package/template-vue-mobile/src/views/[...all_404].vue +557 -0
- package/template-vue-mobile/src/views/base/login.vue +110 -0
- package/template-vue-mobile/src/views/base/resetPasswd.vue +88 -0
- package/template-vue-mobile/src/views/index.vue +18 -0
- package/template-vue-mobile/src/views/my.vue +15 -0
- package/template-vue-mobile/src/views/sub.vue +18 -0
- package/template-vue-mobile/src/vite-env.d.ts +43 -0
- package/template-vue-mobile/tsconfig.json +21 -0
- package/template-vue-mobile/tsconfig.node.json +9 -0
- package/template-vue-mobile/unocss.config.ts +47 -0
- package/template-vue-mobile/vite.config.ts +32 -0
- package/template-vue-mobile/yarn.lock +4395 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "create-young-proj",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.2.0",
|
4
4
|
"description": "create project from template",
|
5
5
|
"main": "index.mjs",
|
6
6
|
"bin": {
|
@@ -45,8 +45,8 @@
|
|
45
45
|
"scripts": {
|
46
46
|
"dev": "unbuild --stub",
|
47
47
|
"build": "unbuild",
|
48
|
-
"format": "rome format
|
49
|
-
"release": "changelogen && bumpp --
|
48
|
+
"format": "rome format . --write",
|
49
|
+
"release": "changelogen && bumpp --no-push",
|
50
50
|
"push": "pnpm publish --access public"
|
51
51
|
}
|
52
52
|
}
|
@@ -45,7 +45,7 @@
|
|
45
45
|
"start": "cross-env NODE_ENV=production node ./boot.mjs",
|
46
46
|
"dev": "cross-env NODE_ENV=local midway-bin dev --ts",
|
47
47
|
"build": "midway-bin build -c",
|
48
|
-
"format": "rome format
|
48
|
+
"format": "rome format * --write"
|
49
49
|
},
|
50
50
|
"midway-bin-clean": [
|
51
51
|
".vscode/.tsbuildinfo",
|
@@ -57,4 +57,4 @@
|
|
57
57
|
},
|
58
58
|
"author": "BluesYoung-web",
|
59
59
|
"license": "MIT"
|
60
|
-
}
|
60
|
+
}
|
@@ -8,7 +8,7 @@
|
|
8
8
|
"dev:server": "nitropack dev",
|
9
9
|
"build": "vite build && nitropack build",
|
10
10
|
"preview": "vite preview --host",
|
11
|
-
"format": "rome format
|
11
|
+
"format": "rome format * --write",
|
12
12
|
"release": "changelogen && bumpp --no-push"
|
13
13
|
},
|
14
14
|
"dependencies": {
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"mobile base": {
|
3
|
+
"prefix": "base",
|
4
|
+
"body": [
|
5
|
+
"<route lang=\"yaml\">",
|
6
|
+
"meta:",
|
7
|
+
" auth: true",
|
8
|
+
" title: $1",
|
9
|
+
" layout: sub",
|
10
|
+
"</route>",
|
11
|
+
"",
|
12
|
+
"<script lang=\"ts\" setup>",
|
13
|
+
"$2",
|
14
|
+
"</script>",
|
15
|
+
"",
|
16
|
+
"<template>",
|
17
|
+
" <div>",
|
18
|
+
" $1",
|
19
|
+
" </div>",
|
20
|
+
"</template>",
|
21
|
+
],
|
22
|
+
"description": "mobile base"
|
23
|
+
}
|
24
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# 拉取基础镜像
|
2
|
+
FROM node:16-alpine as builder
|
3
|
+
|
4
|
+
# 维护者
|
5
|
+
MAINTAINER BluesYoung "bluesyoung_web@163.com"
|
6
|
+
|
7
|
+
# 工作目录
|
8
|
+
WORKDIR /app
|
9
|
+
|
10
|
+
# 没有压缩包,首选 COPY,如果需要自动解包或下载,则使用 ADD
|
11
|
+
|
12
|
+
# 对比依赖是否变更
|
13
|
+
COPY package.json yarn.lock /app/
|
14
|
+
|
15
|
+
# 设置npm仓库 + 下载依赖,上面的文件如果没有变化则跳过下载,直接使用缓存
|
16
|
+
RUN npm config set registry https://registry.npmmirror.com && \
|
17
|
+
yarn config set registry https://registry.npmmirror.com && \
|
18
|
+
yarn
|
19
|
+
|
20
|
+
# 加入代码
|
21
|
+
COPY . /app
|
22
|
+
# 打包
|
23
|
+
RUN yarn build
|
24
|
+
|
25
|
+
# 打包完成,构建最终的极简镜像
|
26
|
+
FROM node:16-alpine
|
27
|
+
|
28
|
+
# 工作目录
|
29
|
+
WORKDIR /app
|
30
|
+
|
31
|
+
# 复制运行需要的文件[及依赖]
|
32
|
+
# 直接复制源代码
|
33
|
+
COPY boot.mjs /app/
|
34
|
+
COPY config /app/config
|
35
|
+
# 复制上一步的打包产物
|
36
|
+
COPY --from=builder /app/.output /app/.output
|
37
|
+
|
38
|
+
# 暴露指定的端口号,暂不需要
|
39
|
+
# EXPOSE 3001
|
40
|
+
|
41
|
+
# 启动容器时运行的命令
|
42
|
+
ENTRYPOINT ["node", "boot.mjs"]
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# h5 模板
|
2
|
+
|
3
|
+
## 用户代码片段(页面模板)
|
4
|
+
|
5
|
+
模板 | 触发关键字
|
6
|
+
--- | ---
|
7
|
+
基础页面 | `base`
|
8
|
+
|
9
|
+
## **Docker 部署**
|
10
|
+
|
11
|
+
- 同一份代码,可以根据运行时的环境变量决定具体表现
|
12
|
+
- `node` 服务:
|
13
|
+
- 托管前端静态资源
|
14
|
+
- 根据环境变量读取对应的配置文件,并以接口的形式暴露给前端
|
15
|
+
- 跨域接口代理
|
16
|
+
|
17
|
+
环境变量
|
18
|
+
|
19
|
+
```sh
|
20
|
+
# 部署环境 dev | test | online
|
21
|
+
DEPLOY_ENV=dev
|
22
|
+
# DEPLOY_ENV=test
|
23
|
+
# DEPLOY_ENV=online
|
24
|
+
# node 服务监听的端口号
|
25
|
+
LISTEN_PORT=3000
|
26
|
+
```
|
27
|
+
|
28
|
+
### 本地开发
|
29
|
+
|
30
|
+
**确保上述的环境变量存在**
|
31
|
+
|
32
|
+
启动服务端程序 `yarn dev:server`
|
33
|
+
|
34
|
+
启动客户端程序 `yarn dev`
|
35
|
+
|
36
|
+
### 打包预览
|
37
|
+
|
38
|
+
`yarn build`
|
39
|
+
|
40
|
+
**确保上述的环境变量存在!!!**
|
41
|
+
|
42
|
+
`node boot.mjs`
|
43
|
+
|
44
|
+
### 配置文件
|
45
|
+
|
46
|
+
存放于 `config` 目录下的 `.${env}rc` 文件,`env` 为对应的环境标识
|
47
|
+
|
48
|
+
## 常规部署
|
49
|
+
|
50
|
+
- `nginx` 托管前端静态资源
|
51
|
+
- 每次打包时读取环境变量,打包完成之后不可变
|
52
|
+
- 使用 `nginx` 代理跨域
|
53
|
+
|
54
|
+
环境变量
|
55
|
+
|
56
|
+
```sh
|
57
|
+
# 设置静态部署
|
58
|
+
VITE_USE_DEFAULT_DEPLOY_METHOD=true
|
59
|
+
# 其他的环境变量,根据环境区分
|
60
|
+
VITE_TITLE=标题名称
|
61
|
+
```
|
62
|
+
|
63
|
+
### 本地开发
|
64
|
+
|
65
|
+
**确保上述的环境变量存在**,然后 `yarn dev` 即可
|
66
|
+
|
67
|
+
### 打包预览
|
68
|
+
|
69
|
+
`yarn build`
|
70
|
+
|
71
|
+
`yarn preview`
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Logs
|
2
|
+
logs
|
3
|
+
*.log
|
4
|
+
npm-debug.log*
|
5
|
+
yarn-debug.log*
|
6
|
+
yarn-error.log*
|
7
|
+
pnpm-debug.log*
|
8
|
+
lerna-debug.log*
|
9
|
+
|
10
|
+
node_modules
|
11
|
+
dist
|
12
|
+
dist-ssr
|
13
|
+
*.local
|
14
|
+
.env
|
15
|
+
|
16
|
+
# Editor directories and files
|
17
|
+
.vscode/*
|
18
|
+
!.vscode/extensions.json
|
19
|
+
!.vscode/settings.json
|
20
|
+
!.vscode/*.code-snippets
|
21
|
+
.idea
|
22
|
+
.DS_Store
|
23
|
+
*.suo
|
24
|
+
*.ntvs*
|
25
|
+
*.njsproj
|
26
|
+
*.sln
|
27
|
+
*.sw?
|
28
|
+
|
29
|
+
.nitro
|
30
|
+
.output
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: zhangyang
|
3
|
+
* @Date: 2022-09-16 11:48:05
|
4
|
+
* @LastEditTime: 2022-12-29 16:21:59
|
5
|
+
* @Description:
|
6
|
+
*/
|
7
|
+
(async () => {
|
8
|
+
const env = process.env.DEPLOY_ENV;
|
9
|
+
const listenPort = process.env.LISTEN_PORT || 3003;
|
10
|
+
console.log('当前环境:', env);
|
11
|
+
console.log('服务监听端口:', listenPort);
|
12
|
+
|
13
|
+
process.env.NITRO_PORT = listenPort;
|
14
|
+
|
15
|
+
await import('./.output/server/index.mjs');
|
16
|
+
})();
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: zhangyang
|
3
|
+
* @Date: 2023-01-10 14:43:13
|
4
|
+
* @LastEditTime: 2023-01-10 15:11:44
|
5
|
+
* @Description:
|
6
|
+
*/
|
7
|
+
import { networkInterfaces } from 'node:os';
|
8
|
+
|
9
|
+
const virtualModuleId = 'virtual:local-server';
|
10
|
+
const ips = networkInterfaces();
|
11
|
+
export const localServer = `http://${ips['eth0'][0].address}:3000`;
|
12
|
+
|
13
|
+
/**
|
14
|
+
* 获取本机 ip 地址,拼接开发时的服务地址
|
15
|
+
*/
|
16
|
+
export const serverPlugin = () => {
|
17
|
+
return {
|
18
|
+
name: 'local-server',
|
19
|
+
resolveId(id) {
|
20
|
+
if (id === virtualModuleId) {
|
21
|
+
return virtualModuleId;
|
22
|
+
}
|
23
|
+
},
|
24
|
+
load(id) {
|
25
|
+
if (id === virtualModuleId) {
|
26
|
+
return `export const server = '${localServer}';`;
|
27
|
+
}
|
28
|
+
},
|
29
|
+
};
|
30
|
+
};
|
@@ -0,0 +1,68 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: zhangyang
|
3
|
+
* @Date: 2023-01-10 14:26:01
|
4
|
+
* @LastEditTime: 2023-01-13 15:54:55
|
5
|
+
* @Description:
|
6
|
+
*/
|
7
|
+
import type { PluginOption } from 'vite';
|
8
|
+
import { serverPlugin } from './custom-plugin';
|
9
|
+
import vue from '@vitejs/plugin-vue';
|
10
|
+
import vueJsx from '@vitejs/plugin-vue-jsx';
|
11
|
+
import legacy from '@vitejs/plugin-legacy';
|
12
|
+
import Unocss from 'unocss/vite';
|
13
|
+
// 自动导入
|
14
|
+
import AutoImport from 'unplugin-auto-import/vite';
|
15
|
+
import AutoComopnents from 'unplugin-vue-components/vite';
|
16
|
+
import { VantResolver } from 'unplugin-vue-components/resolvers';
|
17
|
+
// 自动路由及布局
|
18
|
+
import Pages from 'vite-plugin-pages';
|
19
|
+
import Layouts from 'vite-plugin-vue-layouts';
|
20
|
+
|
21
|
+
export { localServer } from './custom-plugin';
|
22
|
+
|
23
|
+
export const usePlugins = () => {
|
24
|
+
return [
|
25
|
+
serverPlugin(),
|
26
|
+
vue(),
|
27
|
+
vueJsx(),
|
28
|
+
Pages({
|
29
|
+
extensions: ['vue', 'tsx'],
|
30
|
+
dirs: 'src/views',
|
31
|
+
exclude: ['**/components/*.{vue,tsx}', '_*'],
|
32
|
+
}),
|
33
|
+
Layouts({ defaultLayout: 'default' }),
|
34
|
+
AutoComopnents({
|
35
|
+
dirs: ['src/components'],
|
36
|
+
dts: './src/auto-components.d.ts',
|
37
|
+
extensions: ['vue', 'tsx'],
|
38
|
+
resolvers: [VantResolver()],
|
39
|
+
}),
|
40
|
+
AutoImport({
|
41
|
+
dts: './src/auto-imports.d.ts',
|
42
|
+
imports: [
|
43
|
+
'vue',
|
44
|
+
'vue-router',
|
45
|
+
'@vueuse/core',
|
46
|
+
'pinia',
|
47
|
+
{
|
48
|
+
vant: [
|
49
|
+
'showToast',
|
50
|
+
'showLoadingToast',
|
51
|
+
'showFailToast',
|
52
|
+
'showSuccessToast',
|
53
|
+
'showDialog',
|
54
|
+
'showConfirmDialog',
|
55
|
+
'showImagePreview',
|
56
|
+
'showNotify',
|
57
|
+
],
|
58
|
+
},
|
59
|
+
],
|
60
|
+
}),
|
61
|
+
Unocss(),
|
62
|
+
// 不生成同名 polyfill 文件,打包速度翻倍
|
63
|
+
// 如果出现兼容问题,可以删除此配置
|
64
|
+
legacy({
|
65
|
+
// renderLegacyChunks: false
|
66
|
+
}),
|
67
|
+
] as PluginOption[];
|
68
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
VITE_TITLE = Mobile-online
|
@@ -0,0 +1 @@
|
|
1
|
+
VITE_TITLE = Mobile-test
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="zh-CN">
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<meta charset="UTF-8" />
|
6
|
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
7
|
+
<meta id="viewportMeta" name="viewport"
|
8
|
+
content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0,viewport-fit=cover">
|
9
|
+
<title>Vite + Vue + TS</title>
|
10
|
+
<script>
|
11
|
+
// hack globalThis
|
12
|
+
this.globalThis || (this.globalThis = this);
|
13
|
+
window.onerror = function (e) {
|
14
|
+
console.log(e);
|
15
|
+
window.alert('您的浏览器版本过低,请尝试使用其他浏览器或将浏览器升级至最新版本后重试!');
|
16
|
+
}
|
17
|
+
</script>
|
18
|
+
</head>
|
19
|
+
|
20
|
+
<body>
|
21
|
+
<div id="app"></div>
|
22
|
+
<script type="module" src="/src/main.ts"></script>
|
23
|
+
</body>
|
24
|
+
|
25
|
+
</html>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: zhangyang
|
3
|
+
* @Date: 2022-12-28 11:59:56
|
4
|
+
* @LastEditTime: 2022-12-28 12:18:46
|
5
|
+
* @Description:
|
6
|
+
*/
|
7
|
+
import { defineNitroConfig } from 'nitropack';
|
8
|
+
|
9
|
+
export default defineNitroConfig({
|
10
|
+
/**
|
11
|
+
* 托管前端静态资源
|
12
|
+
*/
|
13
|
+
serveStatic: 'node',
|
14
|
+
publicAssets: [
|
15
|
+
{
|
16
|
+
dir: 'dist',
|
17
|
+
},
|
18
|
+
],
|
19
|
+
});
|
@@ -0,0 +1,48 @@
|
|
1
|
+
{
|
2
|
+
"name": "vue3_vant",
|
3
|
+
"private": true,
|
4
|
+
"version": "0.0.0",
|
5
|
+
"type": "module",
|
6
|
+
"scripts": {
|
7
|
+
"dev": "vite --host",
|
8
|
+
"dev:server": "nitropack dev",
|
9
|
+
"build": "vite build && nitropack build",
|
10
|
+
"preview": "vite preview --host",
|
11
|
+
"format": "rome format . --write",
|
12
|
+
"release": "changelogen && bumpp --no-push"
|
13
|
+
},
|
14
|
+
"dependencies": {
|
15
|
+
"@bluesyoung/http": "0.1.3",
|
16
|
+
"@bluesyoung/utils": "0.0.3",
|
17
|
+
"@vueuse/core": "^9.12.0",
|
18
|
+
"core-js": "^3.27.2",
|
19
|
+
"pinia": "^2.0.29",
|
20
|
+
"regenerator-runtime": "^0.13.10",
|
21
|
+
"vant": "^4.0.9",
|
22
|
+
"vconsole": "^3.15.0",
|
23
|
+
"vue": "^3.2.41",
|
24
|
+
"vue-router": "^4.1.6"
|
25
|
+
},
|
26
|
+
"devDependencies": {
|
27
|
+
"@iconify/json": "^2.2.14",
|
28
|
+
"@types/node": "16",
|
29
|
+
"@unocss/reset": "^0.49.1",
|
30
|
+
"@vitejs/plugin-legacy": "^3.0.2",
|
31
|
+
"@vitejs/plugin-vue": "^4.0.0",
|
32
|
+
"@vitejs/plugin-vue-jsx": "^3.0.0",
|
33
|
+
"bumpp": "^8.2.1",
|
34
|
+
"c12": "^1.1.0",
|
35
|
+
"changelogen": "^0.4.1",
|
36
|
+
"less": "^4.1.3",
|
37
|
+
"nitropack": "^2.1.1",
|
38
|
+
"rome": "^11.0.0",
|
39
|
+
"terser": "^5.16.2",
|
40
|
+
"typescript": "^4.9.5",
|
41
|
+
"unocss": "^0.49.1",
|
42
|
+
"unplugin-auto-import": "^0.13.0",
|
43
|
+
"unplugin-vue-components": "^0.23.0",
|
44
|
+
"vite": "^4.0.4",
|
45
|
+
"vite-plugin-pages": "^0.28.0",
|
46
|
+
"vite-plugin-vue-layouts": "^0.7.0"
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: zhangyang
|
3
|
+
* @Date: 2023-01-04 18:53:23
|
4
|
+
* @LastEditTime: 2023-01-04 19:12:55
|
5
|
+
* @Description: 在插件中读取环境变量,避免重复的文件 io
|
6
|
+
*/
|
7
|
+
import { resolve } from 'node:path';
|
8
|
+
import { loadConfig } from 'c12';
|
9
|
+
// @ts-ignore
|
10
|
+
export default defineNitroPlugin(async (app) => {
|
11
|
+
const env = (process.env.DEPLOY_ENV as 'dev' | 'test' | 'online') || 'dev';
|
12
|
+
const { config } = await loadConfig({
|
13
|
+
name: env,
|
14
|
+
cwd: resolve(process.cwd(), 'config'),
|
15
|
+
});
|
16
|
+
|
17
|
+
for (const key in config) {
|
18
|
+
if (Object.prototype.hasOwnProperty.call(config, key)) {
|
19
|
+
process.env[key] = config[key];
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
console.log('------------------------读取配置文件------------------------');
|
24
|
+
console.log(config);
|
25
|
+
console.log('------------------------------------------------------------');
|
26
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"formatter": {
|
3
|
+
"ignore": [
|
4
|
+
"*.d.ts",
|
5
|
+
"index.html",
|
6
|
+
"yarn.lock",
|
7
|
+
"*.json",
|
8
|
+
"README.md",
|
9
|
+
"Dockerfile",
|
10
|
+
"dist/**/*"
|
11
|
+
],
|
12
|
+
"indentStyle": "space",
|
13
|
+
"indentSize": 2,
|
14
|
+
"lineWidth": 100
|
15
|
+
},
|
16
|
+
"javascript": {
|
17
|
+
"formatter": {
|
18
|
+
"quoteStyle": "single"
|
19
|
+
}
|
20
|
+
},
|
21
|
+
"linter": {
|
22
|
+
"enabled": false
|
23
|
+
}
|
24
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/*
|
2
|
+
* @Author: zhangyang
|
3
|
+
* @Date: 2022-11-18 10:55:50
|
4
|
+
* @LastEditTime: 2023-02-01 12:17:15
|
5
|
+
* @Description:
|
6
|
+
*/
|
7
|
+
|
8
|
+
/**
|
9
|
+
* 存储前端需要的环境变量
|
10
|
+
*/
|
11
|
+
const envObj: any = {};
|
12
|
+
|
13
|
+
export default eventHandler(async (event) => {
|
14
|
+
if (Object.keys(envObj).length === 0) {
|
15
|
+
for (const key in process.env) {
|
16
|
+
if (Object.prototype.hasOwnProperty.call(process.env, key) && key.startsWith('VITE_')) {
|
17
|
+
envObj[key] = process.env[key];
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
event.node.res.setHeader('Access-Control-Allow-Origin', '*');
|
23
|
+
|
24
|
+
return envObj as ImportMetaEnv;
|
25
|
+
});
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<!--
|
2
|
+
* @Author: zhangyang
|
3
|
+
* @Date: 2022-12-03 15:57:40
|
4
|
+
* @LastEditTime: 2023-02-01 12:00:31
|
5
|
+
* @Description:
|
6
|
+
-->
|
7
|
+
<template>
|
8
|
+
<div>
|
9
|
+
<!-- 初始化 -->
|
10
|
+
<Init />
|
11
|
+
<!-- 页面 -->
|
12
|
+
<RouterView />
|
13
|
+
</div>
|
14
|
+
</template>
|
15
|
+
<style>
|
16
|
+
:root {
|
17
|
+
--van-nav-bar-background: #0083CE !important;
|
18
|
+
--van-nav-bar-title-text-color: #FFFFFF !important;
|
19
|
+
--van-nav-bar-icon-color: #fff !important;
|
20
|
+
--van-grid-item-text-color: #111 !important;
|
21
|
+
}
|
22
|
+
|
23
|
+
html,
|
24
|
+
body {
|
25
|
+
width: 100%;
|
26
|
+
height: 100%;
|
27
|
+
background: #F7F8FA;
|
28
|
+
}
|
29
|
+
</style>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
// generated by unplugin-vue-components
|
2
|
+
// We suggest you to commit this file into source control
|
3
|
+
// Read more: https://github.com/vuejs/core/pull/3399
|
4
|
+
import '@vue/runtime-core'
|
5
|
+
|
6
|
+
export {}
|
7
|
+
|
8
|
+
declare module '@vue/runtime-core' {
|
9
|
+
export interface GlobalComponents {
|
10
|
+
Init: typeof import('./components/Init.vue')['default']
|
11
|
+
RouterLink: typeof import('vue-router')['RouterLink']
|
12
|
+
RouterView: typeof import('vue-router')['RouterView']
|
13
|
+
VanButton: typeof import('vant/es')['Button']
|
14
|
+
VanCellGroup: typeof import('vant/es')['CellGroup']
|
15
|
+
VanCheckbox: typeof import('vant/es')['Checkbox']
|
16
|
+
VanField: typeof import('vant/es')['Field']
|
17
|
+
VanForm: typeof import('vant/es')['Form']
|
18
|
+
VanIcon: typeof import('vant/es')['Icon']
|
19
|
+
VanNavBar: typeof import('vant/es')['NavBar']
|
20
|
+
VanPopup: typeof import('vant/es')['Popup']
|
21
|
+
VanTabbar: typeof import('vant/es')['Tabbar']
|
22
|
+
VanTabbarItem: typeof import('vant/es')['TabbarItem']
|
23
|
+
}
|
24
|
+
}
|