fengdie-data-sync
fengdie-data-sync
是一个vscode扩展,用来解决凤蝶区块开发效率问题
对basement区块依旧有效,且basement区块的开发效率比之前凤蝶还低。因此,这个插件可以继续提供高效开发效率
Features
原来区块开发流程:
- 开发.schama或者.vm文件,保存
- fengdie push(速度较慢,需要整包推送,同时依赖凤蝶服务器,偶尔会出现Gateway timeout)
- 到fengdie-dev上推送到服务器上(速度较慢,不稳定,偶尔会出现推送失败等各种情况)
- 打开浏览器查看效果
使用fengdie-data-sync
扩展之后:
- 开发.schama或者.vm文件,保存
- 打开浏览器查看效果
使用扩展后,直接跳过了与凤蝶服务器的所有交互。绕过所有的降低效率的因素,保存后在1s内就直达开发服务器。
Extension Settings
扩展配置如下:
fendie-data-sync.local
: 本地环境相关配置,包括是否启用插件,以及区块的根目录是什么。可以不填写。默认值为:
{
"root": "./",
"syncOnSave": true, // 保存时自动生效
"remoteData": false, // 是否在当前目录下没有json数据时,优先去remotes服务器获取
"persist": true // 是否将获取到的json或者mock产生的json存到当前schema同样目录下
}
fendie-data-sync.remotes
:开发服务器配置,主要是ssh链接配置。需要填写,如果不填写,插件不生效。配置结构:
{
"root": "/home/admin/uiweb/fengdie/", // 这个是默认值,可以不填写
"host": "",
"port": 22, // 端口一般设置为22, 需要填写
"username": "",
"password": ""
}
Typical Settings
在vscode的workspace settings中添加以下配置节:
"fengdie-data-sync": {
"local": {
"root": "/home/user/fengide/data/root",
"syncOnSave": true,
"remoteData": false
},
"remotes": [
{
"host": "remote.server.name",
"username": "user",
"port": 22,
"password": "pass",
"root": "/home/user/"
}
]
}
在配置过程中,可以借助vscode的智能提示,看看有哪些选项。
Advanced Usages
默认情况下,当一个schema保存的时候,扩展会mock出schema对应的数据。如果需要自定义数据,那么可以添加一个和schema同样名称的json文件。 比如:
schema文件名称为,test.schmea, 那么添加上test.json在同样目录的时候,这份数据将优先被使用来生成对应的*.vm以及*.json文件
CLI
改插件同时提供了CLI的功能,使用方法如下:
工具安装
npm i fengdie-data-sync -g
初始化配置文件
fengdie-sync init
工具启动
默认就是watch模式,自动监控当前目录及子目录文件变更
fengdie-sync
Limitations
当前插件不支持以下场景:
我们有一个test.schema
, 他被其他非test.vm
使用到的时候,并不会更新其他的vm文件,需要手动去触发其他vm的同步操作。
目前不支持这个场景的原因是,这个case出现的概率较低,而支持这个场景需要跟踪schema与vm的依赖关系,或者做全量扫描,性能上并不划算。
Release Notes
1.1.12
1.1.11
1.1.7
1.1.6
1.1.4
1.1.3
1.1.2
1.1.1
- 修复最新版本node下,无法获取远程文件的问题
- 升级sshstream版本
1.1.0
- 增加
remoteData
参数,支持当vm修改时,如果没有本地json数据,会从服务器端获取json,在尝试生成mock数据,由于会有服务器来回开销,默认关闭
- 增加
persist
参数,用于从远程服务器获取到json或者产生mock数据后,是否保存在当前schema目录下,默认开启。
1.0.6
1.0.5
1.0.4
1.0.2
1.0.1
- 修复了在json文件存在的情况下,传入的json是字符串而不是json对象的问题
1.0.0
特别注意的是,本工具只用于开发环节
Enjoy!