- Vue3.0版本的KOCA前端框架与组件库已发布,点击查看
- 文档中心
- 快速上手
# 项目开发指南
koca前端v2.0,我们在基于1.8的版本上做了一些改动,主要体现在减少了模块间的耦合,为框架减负,优化框架模块的升级等,我们遵循"约定优于配置"的原则,制定一些项目开发的规则,来规范项目的开发。为了配合v2.0前端项目,我们同时对脚手架做了大的改动(脚手架v3使用说明)
在优化框架模块升级的时,提炼出3个概念:框架、模块、项目,这三个概念可以帮助开发者更好的理解平台2.0思想;
1. 框架:KOCA提供的前端开发基础框架,包括基础UI组件:登录页、状态页、菜单、导航条等,数据请求封装,数据缓存,字典,权限等,框架的内容一部分以npm包的形式存在于工程中,另一部分控制文件以源码的形式存在于工程中;
2. 模块:基于框架开发的,集成了业务代码的项目,遵守KOCA模块开发的规则,可发布至npm私库成为模块包,模块包可在项目中集成;
3. 项目:用户基于KOCA前端框架,或集成其他模块的基础上生成的项目。
1
2
3
4
5
2
3
4
5
# 项目目录
调整后的项目目录,参考模块项目amo-classic
amo-classic 前端工程目录 ${workspaceFolder}
├─ build/ 打包相关配置文件
├─ mock 接口仿真配置目录
│ ├─ api api模块的仿真接口目录
│ │ └─ key 仿真示例目录,路径一般和API路径保持一致(/api/key)
│ │ ├─ install.js 安装仿真接口的脚本
│ │ └─ response.json 仿真接口的响应数据
│ ├─ gen_data.js
│ ├─ install.js 安装仿真数据脚本
│ ├─ start.js 启动仿真服务器脚本
│ ├─ stop.js 停止仿真服务器脚本
│ └─ utils.js
├─ node_modules 项目依赖模块
├─ public 公共文件目录
│ ├─ error 错误页面目录
│ ├─ external/ 第三方模块/参考手册目录
│ ├─ config.json 编译后配置文件
│ ├─ favicon.ico 站点图标
│ ├─ index.css 编译后组件样式(本地资源用来替换主题色切换时请求elment-ui站点资源)
│ └─ index.html 首页入口文件
├─ src 源文件目录
│ ├─ assets 资源目录
│ │ ├─ css
│ │ │ └─ index.css 自定义主题的样式文件
│ │ ├─ icons svg_icon的目录
│ │ ├─ scss
│ │ │ ├─ mixin 样式配置文件目录
| │ │ │ ├─ layout-variables.scss 布局相关的scss变量配置文件
│ │ │ | └─ theme-variables.scss 主题颜色相关的scss变量配置文件
│ │ │ └─ index.scss 业务自定义样式
│ │ └─ svg_icons svg图标的源码目录
│ ├─ config 项目配置文件夹
│ │ ├─ cache.ts 缓存接口类定义
│ │ ├─ request.adaptor.ts 数据请求适配器
│ │ └─ setting.ts 门户的配置项
│ ├─ locale 国际化翻译文件目录
│ ├─ router VUE路由配置目录
│ │ └─ static.ts 静态路由文件
│ ├─ store VUEX状态管理目录
│ │ ├─ modules VUEX状态管理模块目录
│ │ │ └─ cacheHub.ts 缓存状态管理文件
│ │ └─ index.ts VUEX状态管理主文件
│ ├─ types 框架类型目录
│ │ ├─ shims-tsx.d.ts 让IDE识别TSX文件
│ │ ├─ shims-vue.d.ts 让IDE识别VUE文件
│ │ └─ vue.d.ts 扩展VUE属性文件
│ ├─ projects 项目文件夹
│ │ ├─ amo-classic 项目名
│ │ │ ├─ views 页面目录
│ │ │ ├─ vue.config.js 项目自定义的vue.config.js
│ └─ └─ └─ main.ts main入口文件
├─ .browserslistrc 浏览器兼容配置
├─ .editorconfig IDE编辑器基本设置
├─ .env.develop 生产环境下调试模式的应用参数配置
├─ .env.development 开发环境下的应用参数配置
├─ .env.production 生产环境下的应用参数配置
├─ .env.test 测试环境下的应用参数配置
├─ .eslintignore *ESLINT忽略文件配置*
├─ .eslintrc.js ESLINT配置
├─ babel.config.json 配置GIT忽略哪些文件
├─ package-lock.json NPM包管理状态文件,记录NPM包的版本和依赖关联
├─ package.json NPM包依赖配置文件
├─ postcss.config.js PostCSS配置文件
├─ README.md 项目的说明文档
├─ setting.json
├─ tsconfig.json TypeScript编译配置文件
├─ vue.config.js VUE项目配置文件
└─ yarn.lock YARN包管理状态文件,记录NPM包的版本和依赖关联
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
升级或使用KOCA前端V2.0版本,需要注意以下几个方面
# 菜单路由
V2.0以前版本
1.页面文件存放路径:${workplace}/src/views/folder/component.vue
例:${workplace}/src/views/api/api.vue
koca_web
├─ src 源文件目录
│ ├─ views 资源目录
│ │ ├─api
└─ └─ └─ └─api.vue pages页面
1
2
3
4
5
2
3
4
5
配置菜单链接:/api/api.vue
v2.0版本
1.页面文件存放路径:${workplace}/src/projects/projectname/views/folder/component.vue
koca_web
├─ src 源文件目录
│ ├─ projects 项目文件夹
│ │ ├─ studio-basic 项目名
│ │ │ ├─ views
│ │ │ │ ├─api
└─ └─ └─ └─ └─ └─api.vue pages页面
1
2
3
4
5
6
7
2
3
4
5
6
7
配置菜单链接:/studio-basic/views/api/api.vue
# vue.config.js
由KOCA脚手架生成项目包含以下几类vue.config.js:
- 框架编译vue.config.js,路径:
${workplace}/vue.config.js
例:框架vue.config.js中引入并使用模块vue.config.js内容:
...
const configAMOModule = require("./src/projects/amo-classic/vue.config.js");
...
...
chainWebpack: config => {
...
configAMOModule(config);
...
}
...
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 模块个性化带的vue.config.js(非模块必需),路径:
${workplace}/src/projects/projectname/vue.config.js
; 例:amo-classic模块中对mxGraph的处理
module.exports = function (config) {
config.module
.rule("")
.test(/mxClient\.js$/)
.use("exports-loader")
.loader("exports-loader?mxClient,mxToolbar,mxEdgeStyle,mxConnectionHandler,mxEllipse,mxConnectionConstraint,mxWindow," +
"mxObjectCodec,mxGraphModel,mxActor,mxPopupMenu,mxShape,mxEventObject,mxGraph,mxPopupMenuHandler,mxPrintPreview," +
"mxEventSource,mxRectangle,mxVertexHandler,mxMouseEvent,mxGraphView,mxCodecRegistry,mxImage,mxGeometry,mxCellState," +
"mxRubberband,mxConstraintHandler,mxKeyHandler,mxDragSource,mxGraphModel,mxEvent,mxUtils,mxEvent,mxCodec,mxCell," +
"mxConstants,mxPoint,mxGraphHandler,mxCylinder,mxCellRenderer,mxEvent,mxUndoManager,mxStencilRegistry,mxStencil," +
"mxClipboard,mxConnector,mxCellOverlay,mxHierarchicalLayout")
.end();
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
提示
项目的vue.config.js(非项目必需),存放路径:${workplace}/src/projects/myproject/vue.config.js
;
为了降低开发门槛,减少开发者学习成本,KOCA框架自带的vue.config.js
已经预设好了绝大部分开发所需的打包编译的配置选项。
# 静态路由
待完善
最近更新时间: 2022/11/10 下午1:36:27