zed-sync

0.3.15 • Public • Published

zed-sync

自动监听本地文件改动并同步到 dae pre 环境

演示

http://asciinema.dapps.douban.com/asciicast/3Y3ZR6B4

背景

感谢我们的 dae 工程师们,我们终于可以在 dae pre 环境中通过 zed 编辑器在线编辑和热更新 pre 上的文件了(http://readthedocs.dapps.douban.com/docs/dae/dev/pre.html#id2)。

但是 zed 编辑器存在以下问题:

  1. 无法和本地文件同步
  2. 功能有限,用起来也很不习惯..

考虑到 zed 编辑器是完全使用前端技术实现的,猜想和后端的通信方式应该也是通过普通的 web api 请求实现的。 于是看了下 zed-editor 的源码,果然找到了写文件请求的接口:

https://github.com/zedapp/zed/blob/master/app/js/fs/web.js#L108

一开始是打算写成编辑器的插件,但是考虑到大家都习惯使用不同的编辑器/IDE,于是就用 nodejs 写了一个监听本地文件改动并自动上传到 zed 服务端的命令行工具,希望也能给大家在开发的过程中带来一些便利。。

安装

  1. 确保本地安装有 8 以上的 nodejs (查看 node 版本: node -v)
  2. 安装 zed-sync 到全局
  3. 在 doubandev3 上安装 dae sdk
npm i -g zed-sync

使用方法

  1. 根据 pre number 和 doubandev2 用户名自动获取 zed url (via run command over SSH)
# 自动获取 zed url 并监听当前目录 
zed-sync -p <sshLoginName>@<preNum>
# e.g. 
zed-sync -p yangzhen@69
 
 
# 获取 zed url 前先执行 dae pre update 
zed-sync -p <sshLoginName>@<preNum> --up
# e.g. 
zed-sync -p yangzhen@69 --up
  1. 手动获取 zed url dae prelease 环境可以通过 dae pre edit --pre <pre num> 得到 zed 实时编辑的服务端链接,具体可以参考 dae 文档: http://readthedocs.dapps.douban.com/docs/dae/dev/pre.html#id2

需要注意的是一定要在项目的根目录下运行该命令,这样才能计算出正确的路径。

npm i -g zed-sync
 
# 查看help 
zed-sync -h
 
# 监听当前文件夹 
zed-sync -u http://diggle1:7337/fs/321f6881cf9546ce9d41f6e26fc10412
 
# 监听指定文件夹 
zed-sync -w <project root> -u http://diggle1:7337/fs/321f6881cf9546ce9d41f6e26fc10412
 
# 监听多个文件夹 
 
zed-sync -w <dir1> <dir2> ... -u http://diggle1:7337/fs/321f6881cf9546ce9d41f6e26fc10412
 
 
zed-sync -u  http://diggle1:7337/fs/321f6881cf9546ce9d41f6e26fc10412 -s /path/to/sync/*

验证和缓存

为了避免出现监听错误的项目,在监听前会有以下验证

  1. 对第一次运行的分支进行缓存,如果同一个 zed 链接之后运行在了不同的分支,会提示错误并停止运行。过期时间为 5 天(重启后失效)。
  2. 会对本地与远程的 readme 内容进行比对,如果不一致会提示警告。

自动获取 zed 链接后会自动缓存到 tmp 目录(重启后失效,最多 5 天)。

跳过验证: -v=false

Readme

Keywords

none

Package Sidebar

Install

npm i zed-sync

Weekly Downloads

1

Version

0.3.15

License

MIT

Unpacked Size

20.9 kB

Total Files

6

Last publish

Collaborators

  • zaaack