接了一个甲方的开发任务,经过选型考虑(其实是完全没有考虑),决定使用Electron进行开发。为什么要用Electron进行这次项目的开发呢?我对这个脚手架以及nodejs语言,几乎可以说是没有任何经验的。
主要考虑如下:
1、我想最终交付给用户的时候,是一个本地客户端的产品形式;
2、通过html快速实现页面、美观的页面;
3、这个产品本身就是一个BS架构的,那么在客户端这边,能够通过浏览器实现是最好的选择;
4、本来可以完全做成基于浏览器的形式,但是那会导致历史上经常遇到的问题:我无法控制用户的浏览器,尤其是一些“领导”们使用的浏览器,往往都是很陈旧的,页面表现会不一致。
暂且处于如上考虑,今天使用Electron搭建了一个基本开发环境,并且做了一些粗糙的页面,响应了页面上的事件,引入BootStrap5对页面进行美化,尝试了将项目make成exe运行包。感觉一切都可以接受。
另:当前开发环境在软件运行时,可以从login页面的底部看到。
一、项目存放路径:
~/Desktop/electron-app/my-electron-app
二、启动项目命令:
npm run start
三、打包项目命令:
npm run make
四、打包时为什么没有将bootstrap5的样式打入运行时的包中?
运行提示:filed to load resource net err_file not found
原因是我在npm install bootstrap的时候选择的是dev安装,结果package.json中的依赖声明,只声明了dev下是依赖于bs5的。手动调整package.json文件,在dependencies段落下,效仿devDependencies段落中的以来,增加对bs5的以来,就可以正确将bs5的资源打包进入运行时文件夹了。
从运行时文件夹的resources/app.asar文件大小可以看出来,没有bs5时这个文件大约300KB,正确打入bs5的时候这个文件大约是9.8MB。
五、今天主要工作是:
1、创建了一堆基本的页面,这些基本页面都是引入了BS5的样式的,所以后期做这些页面时会比较容易实现;
2、增加了Application的自定义菜单,这样很多原本需要在页面中实现的功能(例如退出登录)就可以是现在应用的菜单中,可以令页面内元素更少、更简洁;
六、接下来要做的事情:
1、将所有页面的demo效果做出来;
2、上传excel页面中对文件的上传功能做出来,然后考量一下excel内容解析是放在本地进行解析、生成upload form,还是放在server端解析,由server返回json给本地渲染成confirm form;
3、下载标准模板页面做出来,可以点击不同行业的菜单下载对应的excel预制模板文件;
4、各个页面实现demo时,将BS5的container容器添加好,现在只使用了BS的元素,例如按钮,并没有对页面进行整体控制,这样会导致页面布局是没有的;
5、B/S之间进行API交互的初步实现;
6、Login页面最下面的版本和环境信息文字,应该根据页面,始终出现在页面的最底部。