Flutter开发App的未来及其在各行业的应用潜力分析
1505
2023-01-02
本文目录一览:
NutUI - 移动端 Vue2、Vue3、小程序 组件库 (jd.com)
在项目内执行 eslint --init (若eslint方法报错,请先全局安装再尝试)
按顺序选择如下内容
等待依赖安装完成会生成 .eslintrc.js 文件
此时规则还不太适用此项目,会有很多报错,因此再手动安装一些依赖
然后更改eslintrc文件为
保存后查看其他文件是否有校验效果,若没有重启一下项目
我使用的vscode格式化插件为 Prettier ESLint - Visual Studio Marketplace
用此插件格式化会符合设置的eslint规则
安装vue-tsc
然后在 package.json 的 scripts 中添加以下脚本
首先单独测试命令
运行 yarn lint 看报错文件是否提示出来
修复为符合eslint规则后再运行此命令
出现类似如下展示即为成功
然后运行 yarn tsc
此时如果有类似如下报错
node_modules/@vue/runtime-core/dist/runtime-core.d.ts:1952:40 - error TS1005: ';' expected.
运行 yarn add typescript -D 升级typescript
再运行命令 yarn tsc
出现类似如下展示即为成功
安装husky
然后初始化husky
此时会生成 .husky 文件夹,里面包含 _ 文件夹
在.husky文件夹内新建 pre-commit 文件(没有后缀)
内容如下
之后使用git提交,在commit时,会运行检查,若检查不通过,需修改到符合规则才能提交
为保证其他开发者在提交时也有husky效果,在 package.json 的 scripts 中添加以下脚本
(prepare脚本会在yarn install后自动执行)
Hello 大家好,这里是Anyin。
最近打算把一个小型项目(小程序点餐系统)重构为微服务+微应用模式,前端的技术栈打算使用Vue3 + TS + ElementPlus + Qiankun 。这里记录下我在构建基础微应用的过程。
重构后的项目相关地址:
•后端: Anyin Cloud [1]
•前端基座: Anyin Cloud Parent[2]
•前端微应用: Anyin Cloud Base[3]
好了,接下来,我们来看看如何基于 Vue3+TS+ElementPlus+Qiankun 构建我们的微应用项目。
另外说下,这里为什么不用 Vite 进行构建,原因是 Vite 目前结合 Qiankun 构建为应用还有点问题(采坑了),所以这里就放弃了。
首先,我们使用 vue-cli 创建一个parent项目:
接着,手动选择我们要添加的组件:
我们选择以下组件进行应用的构建,使用空格键进行多选,然后回车即可:
选择vue3.x版本
相关代码风格、路由模式都是使用默认,css编译我们使用less:
相关编码规范我们使用ESLint + Airbnb Config :
最后,完整的选项如下:
当vue-cli帮我们创建好项目,我们进入项目查看下项目目录,如下:
首先,Qiankun的主应用是需要安装依赖的,微应用无需安装依赖,修改配置即可。这里我们先在主应用安装依赖
接着,进行相关微应用配置。我们新增一个 app.ts ,用于记录所有的微应用的入口:
然后,注册微应用,并导出start方法
导出 start 方法之后,需要在入口处执行该方法
对于整个界面,我们希望整体的布局是这个样子的:
所以,我们在安装 ElementPlus 之后,需要做这样子的布局。
首先,安装 ElementPlus
接着,在 main.ts 引入 ElementPlus 组件,如下:
然后,创建一个布局组件 Layout.vue ,如下:
最后,在App.vue注册该组件
运行起来呈现的效果如下:
微应用的初始化项目同主应用,这里就不详细说明。
微应用无需依赖 Qiankun ,这里我们做一些配置即可。
在 src 目录下新增一个 public-path.js 文件,内容如下:
在 main.ts 引入该文件
新增一个路由配置文件,这里我们创建对应的路由信息,并且兼容独立运行,内容如下:
接着,修改 main.ts 关于实例化的代码,如下:
这里主要是定义个渲染的方法,然后暴露Vue实例,因为等下在微应用的生命周期的钩子会使用到。
对于微应用还需要暴露生命周期的钩子方法,这样子主应用才能够识别,在 main.ts 添加如下方法:
使用 vue 创建项目是没有 vue.config.js 文件的,这里我们手动创建一个,并且配置相关详细,代码如下:
•这里我们导入了 package.json 的 name 字段,因为这里需要和主应用配置的 app.ts 文件的 name 字段一致 • headers 添加跨域配置,因为主应用是通过 fetch 方法来获取微应用的资源的,而微应用是启动在另外一个端口,所以需要添加跨域配置 • output 配置了微应用的打包格式,主应用才能正确识别微应用的一些配置
还记得我们以下这个图不?
我认为 Header 应该是属于主应用,而下面的 Aside 和 Main 都是属于微应用, Aside 块一般都是用于展示菜单,个人认为各个微应用应该各自维护自己的菜单,而不是交由主应用维护。
所以,在微应用,我们还需要处理下左侧的菜单布局。
我们新增一个 Layout.vue 布局文件
至此,Vue3+TS+ElementPlus+Qiankun构建微应用项目的一个基本结构我们已经处理完成,整体运行看下效果:
首页
微应用
好了,基于 Vue3+TS+ElementPlus+Qiankun 的微应用项目基本框架我们已经搭建好了,后续就是慢慢填充一些工具和页面了。
相关源码地址:
•主应用: Anyin Cloud Parent
•微应用: Anyin Cloud Base
[1] Anyin Cloud : https://gitee.com/anyin/anyin-cloud
[2] Anyin Cloud Parent: https://gitee.com/anyin/anyin-cloud-parent
[3] Anyin Cloud Base: https://gitee.com/anyin/anyin-cloud-base
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~