zed-sync
a command tool to sync files using zed editor's protocal
Last updated 2 months ago by zaaack .
MIT · Original npm · Tarball
$ cnpm install zed-sync 
SYNC missed versions from official npm registry.

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. 根据 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 链接后会自动缓存,过期时间为 5天。

跳过验证: -v=false

Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 29
Dependencies (10)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |