前言
聊一下自己使用这些技术的一些体会与心得,不做具体的搭建过程了,说一下工程的设计思想与遇到了哪些问题。
项目背景
最近一直在忙一个EPR
系统的开发,新项目之前团队的技术栈基本停留于Vue2 + Js + Webpack + Vuex
上,但是Vue
生态其实已经可以说进入了次时代,虽然我个人其实不是很倡议盲目的去追赶新的框架,因为我觉得先把自己手头的技术掌握扎实才是重中之重,团队的同学绝大多数是一些基本的开发程序员,初级较多。但是学习还是有必要的,那么学习后就需要一个成熟的项目,体系完整的项目来巩固一下自己学的知识,借此机会,向部门CTO提出使用Vue3 + TS + Vite + Pinia + Windicss + NavieUI
进行新项目的开发,审批通过!
设计
团队协作
Plugin
有效利用esLint
、prettier
、husky
以及commitizen
,因为使用了TypeScript
+ esLint
所以对代码的书写规范、类型、接口的使用必须有很高的要求,如果使用了不当的类型或者书写不规范,第一会导致代码提交到远程再到其他同学本地,会出现很多的error,对这种情况,我们可以在git提交的钩子中进行代码的per-commit
,在这个阶段,主要是进行lint
&typecheck
操作,而且在进行typecheck
的时候一定要加noEmit
,禁止有error的代码提交,同时使用commitizen
规范git commit
的信息,遵守augular
规范。
Editor
编辑器集体更换为VSCode
,团队中有使用webstorm
的同学,也强制更换编辑器,如果进行Vue3
的开发,一定要记得禁用vetur
插件,使用volar
进行开发。
UI
因为项目比较着急,所以没有让UI出图,这个对我来说,确实不是什么大问题「手动狗头」,因为自己也有过很多次脱离UI进行开发的经验,虽然不如专业UI设计师做出来好看,但是也还不错,得到了部门领导&老板的大力认可,放一个 栗子,这个项目是用Nuxtjs
搞得,嘻嘻。但是之前都是自己去弄,这次因为比较着急,而且工作内容比较多,所以必须得拉上小伙伴一起了,就面临了一个问题,那就是如何统一设计风格的问题,于是想到了tailwindcss
,调研的过程中,又发现了windicss
,相对于前者,后者的体积更小,但是文档不太友好,因为...你完全可以参照前者的文档,而是用后者进行开发,哈哈,使用windicss
&NavieUI
统一好theme
,给伙伴们的要求是,不要在工程中自己写css
,因为7个人一块开发一个没有UI稿的项目,每个人的想法都不同。到现在提测为止,项目中没有出现过component css,整体页面风格十分统一。
项目工程
assets
存放一些公共的Image & SVG 等资源
components.common
全局公共组件
components.business
全局业务组件
const.commen
全局公共常量
const.business
全局业务常量
directives.xxx.ts
自定义指令【permissions】【network】...
enum
全局枚举值
filter
全局过滤函数(Vue3没有提供filter)
hooks.common
全局逻辑复用
hooks.business
业务逻辑复用
layouts
布局组件
service.api
API
service.request
axios请求拦截器
typings.xxx.d.ts
全局namespace & interface
utils
工具库
结语
以上就是项目部分的设计,主要是目录结构,具体的代码太多了,没有时间写,等有时间了写一个系列吧。
预览
LIST
FORM