@deppon/create-deppon-app 2.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/LICENSE +1 -0
- package/README.md +63 -0
- package/deppon.js +640 -0
- package/package.json +51 -0
- package/template/.env +12 -0
- package/template/.env.dev-local.example +64 -0
- package/template/.env.development.example +64 -0
- package/template/.env.example +1 -0
- package/template/.env.production.example +64 -0
- package/template/.env.test.example +64 -0
- package/template/.eslintignore +2 -0
- package/template/.eslintrc.cjs +14 -0
- package/template/.prettierrc.js +3 -0
- package/template/.vscode/settings.json +8 -0
- package/template/Dockerfile +5 -0
- package/template/README.md +149 -0
- package/template/commitlint.config.js +11 -0
- package/template/gitignore +8 -0
- package/template/index.html +18 -0
- package/template/nginx.conf +70 -0
- package/template/npmrc +2 -0
- package/template/package.json +49 -0
- package/template/preview-server.js +117 -0
- package/template/public/favicon.ico +0 -0
- package/template/public/logo.png +0 -0
- package/template/src/App.vue +123 -0
- package/template/src/api/index.ts +13 -0
- package/template/src/api/prefercenter.ts +23 -0
- package/template/src/api/product.ts +16 -0
- package/template/src/api/user.ts +41 -0
- package/template/src/components/ExpandableMessage.vue +340 -0
- package/template/src/components/PageLayout.vue +43 -0
- package/template/src/config/dictionaryConfig.ts +24 -0
- package/template/src/directives/permission.ts +162 -0
- package/template/src/layouts/BaseLayout.vue +687 -0
- package/template/src/main.ts +27 -0
- package/template/src/router/index.ts +179 -0
- package/template/src/router/route.ts +61 -0
- package/template/src/stores/menu.ts +334 -0
- package/template/src/stores/product.ts +155 -0
- package/template/src/stores/route.ts +79 -0
- package/template/src/stores/user.ts +145 -0
- package/template/src/styles/index.ts +29 -0
- package/template/src/types/dictionary.d.ts +24 -0
- package/template/src/types/vite-env.d.ts +119 -0
- package/template/src/utils/dictionary.ts +188 -0
- package/template/src/utils/errorAnalyzer.ts +217 -0
- package/template/src/utils/messageVNode.ts +15 -0
- package/template/src/utils/request.ts +293 -0
- package/template/src/views/error/401.vue +30 -0
- package/template/src/views/error/403.vue +30 -0
- package/template/src/views/error/404.vue +30 -0
- package/template/src/views/home/index.vue +25 -0
- package/template/tsconfig.json +27 -0
- package/template/vite.config.ts +243 -0
- package/template/yarnrc +3 -0
- package/template/yarnrc.yml +7 -0
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@deppon/create-deppon-app",
|
|
3
|
+
"version": "2.2.0",
|
|
4
|
+
"description": "Vue 3 project scaffold CLI tool",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "",
|
|
7
|
+
"email": ""
|
|
8
|
+
},
|
|
9
|
+
"bin": {
|
|
10
|
+
"create-deppon-app": "deppon.js"
|
|
11
|
+
},
|
|
12
|
+
"type": "module",
|
|
13
|
+
"scripts": {
|
|
14
|
+
"lint": "eslint . --ext js,ts,tsx",
|
|
15
|
+
"format": "prettier --write **/*.{js,ts} && eslint . --ext js,ts --fix",
|
|
16
|
+
"prePublish": "npm run build && npm publish",
|
|
17
|
+
"publish:auto": "npm publish"
|
|
18
|
+
},
|
|
19
|
+
"main": "deppon.js",
|
|
20
|
+
"files": [
|
|
21
|
+
"deppon.js",
|
|
22
|
+
"template"
|
|
23
|
+
],
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"registry": "https://registry.npmjs.org/",
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=14.0.0"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "",
|
|
34
|
+
"directory": "packages/deppon-create"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "",
|
|
37
|
+
"keywords": [
|
|
38
|
+
"webpack",
|
|
39
|
+
"vue",
|
|
40
|
+
"vue3",
|
|
41
|
+
"cli"
|
|
42
|
+
],
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"chalk": "^4.1.0",
|
|
46
|
+
"commander": "^9.4.0",
|
|
47
|
+
"inquirer": "^7.3.3",
|
|
48
|
+
"semver": "^7.3.7"
|
|
49
|
+
},
|
|
50
|
+
"gitHead": "1e62b1a584750ea257911035a1b7ef1042c335e8"
|
|
51
|
+
}
|
package/template/.env
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# 基础环境配置文件
|
|
3
|
+
# ============================================
|
|
4
|
+
# 此文件包含所有环境的公共配置项
|
|
5
|
+
# 各环境特定的配置请在各环境的配置文件中设置:
|
|
6
|
+
# - .env.dev-local (本地环境)
|
|
7
|
+
# - .env.development (开发环境)
|
|
8
|
+
# - .env.test (测试环境)
|
|
9
|
+
# - .env.production (生产环境)
|
|
10
|
+
|
|
11
|
+
# 应用部署路径(根据实际项目名称修改)
|
|
12
|
+
DP_PUBLIC_PATH=/
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# local 环境配置
|
|
3
|
+
# ============================================
|
|
4
|
+
# 此文件包含本地开发环境的特定配置
|
|
5
|
+
# 通过运行 npm run dev:local 使用此配置
|
|
6
|
+
|
|
7
|
+
# ============================================
|
|
8
|
+
# 环境标识
|
|
9
|
+
# ============================================
|
|
10
|
+
DP_ENV=development
|
|
11
|
+
|
|
12
|
+
# ============================================
|
|
13
|
+
# 开发服务器配置
|
|
14
|
+
# ============================================
|
|
15
|
+
|
|
16
|
+
# 开发服务器端口号
|
|
17
|
+
DP_PORT=3100
|
|
18
|
+
|
|
19
|
+
# 开发服务器监听的主机地址
|
|
20
|
+
DP_HOST=0.0.0.0
|
|
21
|
+
|
|
22
|
+
# 允许访问的主机名(多个用逗号分隔)
|
|
23
|
+
DP_ALLOWED_HOSTS=
|
|
24
|
+
|
|
25
|
+
# ============================================
|
|
26
|
+
# 应用配置
|
|
27
|
+
# ============================================
|
|
28
|
+
|
|
29
|
+
# 登录页面 URL
|
|
30
|
+
DP_LOGIN_URL=
|
|
31
|
+
|
|
32
|
+
# 是否启用 HTTPS
|
|
33
|
+
DP_HTTPS=false
|
|
34
|
+
|
|
35
|
+
# 启动开发服务器时是否自动打开浏览器
|
|
36
|
+
DP_OPEN=false
|
|
37
|
+
|
|
38
|
+
# 自动打开的页面路径
|
|
39
|
+
DP_OPEN_PAGE=/
|
|
40
|
+
|
|
41
|
+
# 构建输出目录名称
|
|
42
|
+
DP_BUILD_DIR=dist
|
|
43
|
+
|
|
44
|
+
# 是否生成 source map 文件(开发环境建议开启,方便调试)
|
|
45
|
+
DP_SOURCEMAP=true
|
|
46
|
+
|
|
47
|
+
# 是否启用登录检验
|
|
48
|
+
DP_ENABLE_LOGIN_CHECK=false
|
|
49
|
+
|
|
50
|
+
# 是否使用布局组件
|
|
51
|
+
DP_USE_LAYOUT=true
|
|
52
|
+
|
|
53
|
+
# 是否使用本地路由
|
|
54
|
+
DP_USE_LOCAL_ROUTES=true
|
|
55
|
+
|
|
56
|
+
# ============================================
|
|
57
|
+
# 多系统 API 地址配置
|
|
58
|
+
# ============================================
|
|
59
|
+
|
|
60
|
+
# 主业务 API 地址
|
|
61
|
+
DP_API_HOST=
|
|
62
|
+
|
|
63
|
+
# UAP 用户信息服务 API 地址
|
|
64
|
+
DP_UAP_API_HOST=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# Development 环境配置
|
|
3
|
+
# ============================================
|
|
4
|
+
# 此文件包含开发环境的特定配置
|
|
5
|
+
# 通过运行 npm run dev 使用此配置
|
|
6
|
+
|
|
7
|
+
# ============================================
|
|
8
|
+
# 环境标识
|
|
9
|
+
# ============================================
|
|
10
|
+
DP_ENV=development
|
|
11
|
+
|
|
12
|
+
# ============================================
|
|
13
|
+
# 开发服务器配置
|
|
14
|
+
# ============================================
|
|
15
|
+
|
|
16
|
+
# 开发服务器端口号
|
|
17
|
+
DP_PORT=3100
|
|
18
|
+
|
|
19
|
+
# 开发服务器监听的主机地址
|
|
20
|
+
DP_HOST=0.0.0.0
|
|
21
|
+
|
|
22
|
+
# 允许访问的主机名(多个用逗号分隔)
|
|
23
|
+
DP_ALLOWED_HOSTS=
|
|
24
|
+
|
|
25
|
+
# ============================================
|
|
26
|
+
# 应用配置
|
|
27
|
+
# ============================================
|
|
28
|
+
|
|
29
|
+
# 登录页面 URL
|
|
30
|
+
DP_LOGIN_URL=
|
|
31
|
+
|
|
32
|
+
# 是否启用 HTTPS
|
|
33
|
+
DP_HTTPS=false
|
|
34
|
+
|
|
35
|
+
# 启动开发服务器时是否自动打开浏览器
|
|
36
|
+
DP_OPEN=false
|
|
37
|
+
|
|
38
|
+
# 自动打开的页面路径
|
|
39
|
+
DP_OPEN_PAGE=/
|
|
40
|
+
|
|
41
|
+
# 构建输出目录名称
|
|
42
|
+
DP_BUILD_DIR=dist
|
|
43
|
+
|
|
44
|
+
# 是否生成 source map 文件(开发环境建议开启,方便调试)
|
|
45
|
+
DP_SOURCEMAP=true
|
|
46
|
+
|
|
47
|
+
# 是否启用登录检验
|
|
48
|
+
DP_ENABLE_LOGIN_CHECK=false
|
|
49
|
+
|
|
50
|
+
# 是否使用布局组件
|
|
51
|
+
DP_USE_LAYOUT=true
|
|
52
|
+
|
|
53
|
+
# 是否使用本地路由
|
|
54
|
+
DP_USE_LOCAL_ROUTES=true
|
|
55
|
+
|
|
56
|
+
# ============================================
|
|
57
|
+
# 多系统 API 地址配置
|
|
58
|
+
# ============================================
|
|
59
|
+
|
|
60
|
+
# 主业务 API 地址
|
|
61
|
+
DP_API_HOST=
|
|
62
|
+
|
|
63
|
+
# UAP 用户信息服务 API 地址
|
|
64
|
+
DP_UAP_API_HOST=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Production environment variables
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# Production 环境配置
|
|
3
|
+
# ============================================
|
|
4
|
+
# 此文件包含生产环境的特定配置
|
|
5
|
+
# 通过运行 npm run build 使用此配置
|
|
6
|
+
|
|
7
|
+
# ============================================
|
|
8
|
+
# 环境标识
|
|
9
|
+
# ============================================
|
|
10
|
+
DP_ENV=production
|
|
11
|
+
|
|
12
|
+
# ============================================
|
|
13
|
+
# 开发服务器配置
|
|
14
|
+
# ============================================
|
|
15
|
+
|
|
16
|
+
# 开发服务器端口号(生产环境构建后此配置通常不使用)
|
|
17
|
+
DP_PORT=8888
|
|
18
|
+
|
|
19
|
+
# 开发服务器监听的主机地址
|
|
20
|
+
DP_HOST=0.0.0.0
|
|
21
|
+
|
|
22
|
+
# 允许访问的主机名
|
|
23
|
+
DP_ALLOWED_HOSTS=
|
|
24
|
+
|
|
25
|
+
# ============================================
|
|
26
|
+
# 应用配置
|
|
27
|
+
# ============================================
|
|
28
|
+
|
|
29
|
+
# 登录页面 URL
|
|
30
|
+
DP_LOGIN_URL=
|
|
31
|
+
|
|
32
|
+
# 是否启用 HTTPS
|
|
33
|
+
DP_HTTPS=false
|
|
34
|
+
|
|
35
|
+
# 启动开发服务器时是否自动打开浏览器(生产环境通常关闭)
|
|
36
|
+
DP_OPEN=false
|
|
37
|
+
|
|
38
|
+
# 自动打开的页面路径
|
|
39
|
+
DP_OPEN_PAGE=/
|
|
40
|
+
|
|
41
|
+
# 构建输出目录名称
|
|
42
|
+
DP_BUILD_DIR=dist
|
|
43
|
+
|
|
44
|
+
# 是否生成 source map 文件(生产环境建议关闭,减少文件大小并保护源码)
|
|
45
|
+
DP_SOURCEMAP=false
|
|
46
|
+
|
|
47
|
+
# 是否启用登录检验
|
|
48
|
+
DP_ENABLE_LOGIN_CHECK=true
|
|
49
|
+
|
|
50
|
+
# 是否使用布局组件
|
|
51
|
+
DP_USE_LAYOUT=false
|
|
52
|
+
|
|
53
|
+
# 是否使用本地路由
|
|
54
|
+
DP_USE_LOCAL_ROUTES=true
|
|
55
|
+
|
|
56
|
+
# ============================================
|
|
57
|
+
# 多系统 API 地址配置
|
|
58
|
+
# ============================================
|
|
59
|
+
|
|
60
|
+
# 主业务 API 地址
|
|
61
|
+
DP_API_HOST=
|
|
62
|
+
|
|
63
|
+
# UAP 用户信息服务 API 地址
|
|
64
|
+
DP_UAP_API_HOST=
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# ============================================
|
|
2
|
+
# test 环境配置
|
|
3
|
+
# ============================================
|
|
4
|
+
# 此文件包含测试环境的特定配置
|
|
5
|
+
# 通过运行 npm run dev:test 或 npm run build:test 使用此配置
|
|
6
|
+
|
|
7
|
+
# ============================================
|
|
8
|
+
# 环境标识
|
|
9
|
+
# ============================================
|
|
10
|
+
DP_ENV=test
|
|
11
|
+
|
|
12
|
+
# ============================================
|
|
13
|
+
# 开发服务器配置
|
|
14
|
+
# ============================================
|
|
15
|
+
|
|
16
|
+
# 开发服务器端口号
|
|
17
|
+
DP_PORT=3102
|
|
18
|
+
|
|
19
|
+
# 开发服务器监听的主机地址
|
|
20
|
+
DP_HOST=0.0.0.0
|
|
21
|
+
|
|
22
|
+
# 允许访问的主机名
|
|
23
|
+
DP_ALLOWED_HOSTS=
|
|
24
|
+
|
|
25
|
+
# ============================================
|
|
26
|
+
# 应用配置
|
|
27
|
+
# ============================================
|
|
28
|
+
|
|
29
|
+
# 登录页面 URL
|
|
30
|
+
DP_LOGIN_URL=
|
|
31
|
+
|
|
32
|
+
# 是否启用 HTTPS
|
|
33
|
+
DP_HTTPS=false
|
|
34
|
+
|
|
35
|
+
# 启动开发服务器时是否自动打开浏览器
|
|
36
|
+
DP_OPEN=false
|
|
37
|
+
|
|
38
|
+
# 自动打开的页面路径
|
|
39
|
+
DP_OPEN_PAGE=/
|
|
40
|
+
|
|
41
|
+
# 构建输出目录名称
|
|
42
|
+
DP_BUILD_DIR=dist
|
|
43
|
+
|
|
44
|
+
# 是否生成 source map 文件(测试环境建议关闭)
|
|
45
|
+
DP_SOURCEMAP=false
|
|
46
|
+
|
|
47
|
+
# 是否启用登录检验
|
|
48
|
+
DP_ENABLE_LOGIN_CHECK=true
|
|
49
|
+
|
|
50
|
+
# 是否使用布局组件
|
|
51
|
+
DP_USE_LAYOUT=false
|
|
52
|
+
|
|
53
|
+
# 是否使用本地路由
|
|
54
|
+
DP_USE_LOCAL_ROUTES=true
|
|
55
|
+
|
|
56
|
+
# ============================================
|
|
57
|
+
# 多系统 API 地址配置
|
|
58
|
+
# ============================================
|
|
59
|
+
|
|
60
|
+
# 主业务 API 地址
|
|
61
|
+
DP_API_HOST=
|
|
62
|
+
|
|
63
|
+
# UAP 用户信息服务 API 地址
|
|
64
|
+
DP_UAP_API_HOST=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// This is a template file, ESLint config will be available after project initialization
|
|
2
|
+
// Using a minimal config to avoid lint errors during template file checks
|
|
3
|
+
module.exports = {
|
|
4
|
+
env: {
|
|
5
|
+
node: true,
|
|
6
|
+
es2021: true,
|
|
7
|
+
},
|
|
8
|
+
parserOptions: {
|
|
9
|
+
ecmaVersion: 2021,
|
|
10
|
+
sourceType: 'module',
|
|
11
|
+
},
|
|
12
|
+
// The actual config will be set after project initialization
|
|
13
|
+
// extends: ['@deppon/deppon-eslint-config'],
|
|
14
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
FROM swr.cn-east-3.myhuaweicloud.com/cicd-base-images/nginx:1.0
|
|
2
|
+
ADD dist.tar /usr/share/nginx/html/
|
|
3
|
+
RUN mkdir /usr/share/nginx/html/{{PROJECT_NAME}} && mv /usr/share/nginx/html/dist/* /usr/share/nginx/html/{{PROJECT_NAME}}
|
|
4
|
+
RUN rm -rf /usr/share/nginx/html/dist/
|
|
5
|
+
EXPOSE 80
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# 项目模板
|
|
2
|
+
|
|
3
|
+
基于 @deppon 系列包的 Vue 3 项目模板
|
|
4
|
+
|
|
5
|
+
## 启动
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 开发环境
|
|
9
|
+
npm run dev
|
|
10
|
+
|
|
11
|
+
# 测试环境
|
|
12
|
+
npm run dev:test
|
|
13
|
+
|
|
14
|
+
# 本地环境
|
|
15
|
+
npm run dev:local
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 构建
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 生产环境构建
|
|
22
|
+
npm run build
|
|
23
|
+
|
|
24
|
+
# 测试环境构建
|
|
25
|
+
npm run build:test
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 预览
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# 预览生产构建
|
|
32
|
+
npm run preview
|
|
33
|
+
|
|
34
|
+
# 预览测试构建(带 base path)
|
|
35
|
+
npm run preview:test
|
|
36
|
+
|
|
37
|
+
# 使用预览服务器
|
|
38
|
+
npm run serve:test
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 环境变量配置
|
|
42
|
+
|
|
43
|
+
### 环境配置文件
|
|
44
|
+
|
|
45
|
+
项目支持多个环境配置文件:
|
|
46
|
+
|
|
47
|
+
- `.env` - 基础配置(公共配置项)
|
|
48
|
+
- `.env.dev-local` - 本地开发环境
|
|
49
|
+
- `.env.development` - 开发环境
|
|
50
|
+
- `.env.test` - 测试环境
|
|
51
|
+
- `.env.production` - 生产环境
|
|
52
|
+
|
|
53
|
+
### 布局容器控制(DP_USE_LAYOUT)
|
|
54
|
+
|
|
55
|
+
通过环境变量 `DP_USE_LAYOUT` 控制父级容器类型,用于模拟不同的测试环境:
|
|
56
|
+
|
|
57
|
+
- **测试环境(默认)**:使用完整的 Layout 容器(包含侧边栏、头部等)
|
|
58
|
+
|
|
59
|
+
```env
|
|
60
|
+
DP_USE_LAYOUT=true
|
|
61
|
+
# 或者不设置(默认为 true)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- **iframe 模式(生产环境)**:使用简单的 router-view 容器,模拟线上 iframe 环境
|
|
65
|
+
|
|
66
|
+
```env
|
|
67
|
+
DP_USE_LAYOUT=false
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**使用场景:**
|
|
71
|
+
|
|
72
|
+
- 本地开发时,可以设置 `DP_USE_LAYOUT=false` 来模拟线上 iframe 环境的渲染方式
|
|
73
|
+
- 测试环境默认使用完整的 Layout 容器,方便查看完整的页面布局
|
|
74
|
+
|
|
75
|
+
**注意:**
|
|
76
|
+
|
|
77
|
+
- `developmentRoutes` 只在开发环境(`import.meta.env.DEV === true`)才会加载
|
|
78
|
+
- 生产环境只加载 `staticRoutes`(错误页面等)
|
|
79
|
+
|
|
80
|
+
## 项目结构
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
src/
|
|
84
|
+
├── api/ # API 接口文件
|
|
85
|
+
├── assets/ # 静态资源(图片、JSON 等)
|
|
86
|
+
├── components/ # 公共组件
|
|
87
|
+
├── config/ # 配置文件(字典配置等)
|
|
88
|
+
├── directives/ # 自定义指令(权限指令等)
|
|
89
|
+
├── layouts/ # 布局组件
|
|
90
|
+
├── router/ # 路由配置
|
|
91
|
+
├── stores/ # Pinia 状态管理
|
|
92
|
+
├── styles/ # 样式文件
|
|
93
|
+
├── types/ # TypeScript 类型定义
|
|
94
|
+
├── utils/ # 工具函数
|
|
95
|
+
└── views/ # 页面组件
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 功能特性
|
|
99
|
+
|
|
100
|
+
- ✅ Vue 3 + TypeScript
|
|
101
|
+
- ✅ Element Plus UI 组件库
|
|
102
|
+
- ✅ Vite 构建工具
|
|
103
|
+
- ✅ 路由管理(@deppon/deppon-router)
|
|
104
|
+
- ✅ 状态管理(@deppon/deppon-pinia)
|
|
105
|
+
- ✅ 请求封装(@deppon/deppon-request)
|
|
106
|
+
- ✅ 权限指令(v-permission)
|
|
107
|
+
- ✅ 字典管理工具
|
|
108
|
+
- ✅ 错误分析工具
|
|
109
|
+
- ✅ 多环境配置支持
|
|
110
|
+
- ✅ Legacy 浏览器支持
|
|
111
|
+
|
|
112
|
+
## 开发规范
|
|
113
|
+
|
|
114
|
+
### 代码检查
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm run lint
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 代码格式化
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npm run format
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 部署
|
|
127
|
+
|
|
128
|
+
### Docker 部署
|
|
129
|
+
|
|
130
|
+
项目包含 `Dockerfile`,可以使用 Docker 进行部署。
|
|
131
|
+
|
|
132
|
+
### Nginx 配置
|
|
133
|
+
|
|
134
|
+
项目包含 `nginx.conf` 配置文件示例,需要根据实际项目路径修改配置中的 `/your-app-name` 路径。
|
|
135
|
+
|
|
136
|
+
### 预览服务器
|
|
137
|
+
|
|
138
|
+
项目包含 `preview-server.js`,用于本地预览构建后的文件。需要根据实际项目路径修改 `BASE_PATH` 配置。
|
|
139
|
+
|
|
140
|
+
## 注意事项
|
|
141
|
+
|
|
142
|
+
1. 创建新项目后,需要根据实际项目名称修改以下文件:
|
|
143
|
+
- `nginx.conf` 中的 `/your-app-name` 路径
|
|
144
|
+
- `preview-server.js` 中的 `BASE_PATH` 配置
|
|
145
|
+
- `.env` 中的 `DP_PUBLIC_PATH` 配置
|
|
146
|
+
|
|
147
|
+
2. 权限指令(v-permission)需要根据实际项目实现权限检查函数,参考 `src/directives/permission.ts` 中的 `setPermissionCheckFn` 方法。
|
|
148
|
+
|
|
149
|
+
3. 字典配置在 `src/config/dictionaryConfig.ts` 中定义,通过 `src/utils/dictionary.ts` 中的工具函数使用。
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta name="description" content="德邦前端应用" />
|
|
7
|
+
<title>德邦</title>
|
|
8
|
+
<link type="favicon" rel="shortcut icon" href="https://www.deppon.com/cms/console/sites/favicon.ico" />
|
|
9
|
+
<!-- DNS 预解析 -->
|
|
10
|
+
<link rel="dns-prefetch" href="https://www.deppon.com" />
|
|
11
|
+
<!-- 预连接关键资源 -->
|
|
12
|
+
<link rel="preconnect" href="https://www.deppon.com" crossorigin />
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="app"></div>
|
|
16
|
+
<script type="module" src="/src/main.ts"></script>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
server {
|
|
2
|
+
listen 80;
|
|
3
|
+
server_name localhost;
|
|
4
|
+
|
|
5
|
+
#charset koi8-r;
|
|
6
|
+
#access_log /var/log/nginx/log/host.access.log main;
|
|
7
|
+
|
|
8
|
+
root /usr/share/nginx/html;
|
|
9
|
+
index index.html index.htm;
|
|
10
|
+
|
|
11
|
+
# 处理应用路径不带斜杠的情况,重定向到带斜杠(精确匹配,优先级最高)
|
|
12
|
+
# 注意:需要根据实际项目路径修改 /your-app-name
|
|
13
|
+
location = /your-app-name {
|
|
14
|
+
return 301 /your-app-name/;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
# 处理静态资源(assets)- 必须在主 location 之前匹配
|
|
18
|
+
# 根据构建结果,所有资源路径都是 /your-app-name/assets/
|
|
19
|
+
# 包括:js、css、fonts 等
|
|
20
|
+
# 注意:需要根据实际项目路径修改 /your-app-name
|
|
21
|
+
location ~ ^/your-app-name/assets/(.*)$ {
|
|
22
|
+
alias /usr/share/nginx/html/your-app-name/assets/$1;
|
|
23
|
+
expires 1y;
|
|
24
|
+
add_header Cache-Control "public, immutable";
|
|
25
|
+
access_log off;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# 处理 favicon.ico
|
|
29
|
+
location = /your-app-name/favicon.ico {
|
|
30
|
+
alias /usr/share/nginx/html/your-app-name/favicon.ico;
|
|
31
|
+
expires 1y;
|
|
32
|
+
add_header Cache-Control "public, immutable";
|
|
33
|
+
access_log off;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
# 处理 iframe.html(如果存在)
|
|
37
|
+
location = /your-app-name/iframe.html {
|
|
38
|
+
alias /usr/share/nginx/html/your-app-name/iframe.html;
|
|
39
|
+
access_log off;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# 配置应用路径,支持 Vue Router history 模式(前缀匹配,优先级第二)
|
|
43
|
+
# 注意:这个 location 必须放在 assets 之后,但要在根路径之前
|
|
44
|
+
# 注意:需要根据实际项目路径修改 /your-app-name
|
|
45
|
+
location /your-app-name/ {
|
|
46
|
+
alias /usr/share/nginx/html/your-app-name/;
|
|
47
|
+
# 尝试访问文件,如果不存在则尝试目录,最后回退到 index.html(支持 Vue Router)
|
|
48
|
+
try_files $uri $uri/ /your-app-name/index.html;
|
|
49
|
+
index index.html;
|
|
50
|
+
# 禁止目录列表
|
|
51
|
+
autoindex off;
|
|
52
|
+
# 确保可以访问文件
|
|
53
|
+
access_log on;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
# 根路径配置(通用匹配,优先级最低,放在最后)
|
|
57
|
+
location / {
|
|
58
|
+
root /usr/share/nginx/html;
|
|
59
|
+
index index.html index.htm;
|
|
60
|
+
try_files $uri $uri/ /index.html;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
#error_page 404 /404.html;
|
|
64
|
+
|
|
65
|
+
# redirect server error pages to the static page /50x.html
|
|
66
|
+
error_page 500 502 503 504 /50x.html;
|
|
67
|
+
location = /50x.html {
|
|
68
|
+
root /usr/share/nginx/html;
|
|
69
|
+
}
|
|
70
|
+
}
|
package/template/npmrc
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "",
|
|
3
|
+
"description": "",
|
|
4
|
+
"version": "1.3.230",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "vite --mode development",
|
|
8
|
+
"dev:test": "vite --mode test",
|
|
9
|
+
"dev:local": "vite --mode dev-local",
|
|
10
|
+
"build:test": "vite build --mode test",
|
|
11
|
+
"build": "vite build --mode production",
|
|
12
|
+
"preview": "vite preview",
|
|
13
|
+
"preview:test": "vite preview --base /",
|
|
14
|
+
"serve:test": "node preview-server.js",
|
|
15
|
+
"lint": "eslint . --ext js,ts,vue",
|
|
16
|
+
"format": "prettier --write **/*.{js,ts,vue} && eslint . --ext js,ts,vue --fix"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@deppon/deppon-assets": "^2.1.0",
|
|
20
|
+
"@deppon/deppon-auth": "^2.1.0",
|
|
21
|
+
"@deppon/deppon-pinia": "^2.1.0",
|
|
22
|
+
"@deppon/deppon-request": "^2.1.0",
|
|
23
|
+
"@deppon/deppon-router": "^2.1.0",
|
|
24
|
+
"@deppon/deppon-template": "^2.1.0",
|
|
25
|
+
"@deppon/deppon-ui": "^2.1.0",
|
|
26
|
+
"@deppon/deppon-utils": "^2.1.0",
|
|
27
|
+
"dayjs": "^1.11.19",
|
|
28
|
+
"echarts": "^6.0.0",
|
|
29
|
+
"element-plus": "^2.11.7",
|
|
30
|
+
"exceljs": "^4.4.0",
|
|
31
|
+
"file-saver": "^2.0.5",
|
|
32
|
+
"nprogress": "^0.2.0",
|
|
33
|
+
"pinyin-pro": "^3.27.0",
|
|
34
|
+
"vue": "^3.5.24"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@deppon/deppon-eslint-config": "^2.1.0",
|
|
38
|
+
"@types/node": "^24.10.1",
|
|
39
|
+
"@types/nprogress": "^0.2.3",
|
|
40
|
+
"@vitejs/plugin-legacy": "^5.4.0",
|
|
41
|
+
"@vitejs/plugin-vue": "^5.0.0",
|
|
42
|
+
"consola": "^3.4.2",
|
|
43
|
+
"cross-env": "^10.1.0",
|
|
44
|
+
"less": "^4.4.2",
|
|
45
|
+
"terser": "^5.46.0",
|
|
46
|
+
"typescript": "^5.9.3",
|
|
47
|
+
"vite": "^5.0.0"
|
|
48
|
+
}
|
|
49
|
+
}
|