更简单启动F9web服务
背景
F9 框架自从 F9.5 开始,使用了组件化的模式,简单来说,就是将功能模块拆分到了不同的jar包里面去。好处就不说了,但给前端开发人员带来的一个痛点问题就是 很难再启动一个web服务器来查看和修改页面了
以下是几个场景实例:
- 我要修改主题包里面的页面,但是我拉了主题包之后,主题包里面只有主题页面,框架资源一个都没有,我没办法在浏览器里面看到主题的页面效果。
- 我要修改工作流组件, 但是我拉了工作流代码后看不到效果。
以上问题怎么办?
- 自己本地跑java工程. 但作为一个前端, 经常会启动失败, 不知道如何处理; 另一点, 太吃资源, 电脑带不起。
- 自己把相关页面整合到以一个目录下,再启动。但提交的时候还得再复制回去,太麻烦容易出错。
- 历史解决方案 easy-server . 但此方案需要拉源码,且需要放置在一个目录,使用不便。
原因分析: 组件化,不同的模块在不同的包里面,只拉一个包的情况下,没有其他的页面资源,所以无法启动一个web服务器来查看页面效果。
使用
安装
npm install -g @epoint-fe/f9server
配置
在项目目录下创建一个 .epoint.server.js
文件,配置如下:
module.exports = {
watch: true,
paths: {
// 配置格式 key - value ,
// key 为包名 fui 或 action2rest 需固定,因为有额外的特殊逻辑 , 其他依赖包任意写,无实际作用
// value 为本地的路径,配置到java工程目录即可
fui: 'D:\\Code\\EpointFrame\\F9.5\\epoint-fui', // 配置到java工程目录即可
action2rest: 'D:\\Code\\EpointFrame\\F9.5\\epoint-shell-actionengine', // 可选 按自己的需求来
'epoint-ui-sheet': 'D:\\Code\\EpointFrame\\com\\epoint-ui-sheet\\epoint-ui-sheet' // 可选 按自己的需求来
},
// 启动的端口号
port: 3000,
// 应用名, 前后不带 /
appName: 'epoint-excel-web',
// 响应头配置
headers: {
// "Content-Security-Policy": ""
}
}
启动和使用
在当先项目目录下,执行以下命令:
f9server
使用示例
**场景1: 开发主题包**
在主题包目录下,新增配置文件。 主题包无需其他资源,只需要配置 fui 即可。
module.exports = {
watch: true,
paths: {
fui: 'D:\\Code\\EpointFrame\\F9.5\\epoint-fui'
},
port: 3000,
appName: 'epoint-web'
};
**场景2 在excel包下开发电子表格页面**
此页面启动需要依赖 fui 和 action2rest 两个包,所以需要配置两个包的路径,此外还依赖我们自己封装过的表格资源,因此启动页面需要如下3个包,配置好地址即可.
module.exports = {
watch: true,
paths: {
fui: 'D:\\Code\\EpointFrame\\F9.5\\epoint-fui', // 配置到java工程目录即可
action2rest: 'D:\\Code\\EpointFrame\\F9.5\\epoint-shell-actionengine',
'epoint-ui-sheet': 'D:\\Code\\EpointFrame\\com\\epoint-ui-sheet\\epoint-ui-sheet'
},
port: 3000,
appName: 'epoint-excel-web'
}
效果:
changee log
参考 CHANGELOG.md
feature
- [x] 支持修改资源自动刷页面
- [ ] 支持直接配置一个jar文件作为依赖
- [ ] fui 和 action2rest 包支持免配置(可以直接使用一个线上部署好的地址)
如果你有更多使用建议,可通过issue提交。