NAE 命令行客户端 V1.1 Release
发布于 3年前 作者 fish 5058 次浏览

Hi, all

NAE client v1.1 release !

NAE client 是NAE本地开发的命令行工具,可以通过简单的命令操控NAE上的APP, 欢迎试用,安全起见,首次试用,请先用一个测试目录。记得保护自己的代码哦

任何建议和bug,欢迎跟帖反馈 , ^_^ 。

安装nae客户端

默认的安装路径 /usr/local/lib/nae/    bin path => /usr/local/bin/nae
之前安装过的,手段删除一下 /usr/local/bin/nae

$ npm install -g nae

安装之后

$ nae -v
# 将打印出版本信息,说明安装成功

使用nae客户端

在开始之前,请仔细阅读这段说明。 nae client在开始使用时需要先身份认证,身份认证需要使用auth命令获取身份认证

$ nae auth

份认证成功之后,会在~/.nae_auth文件中保存认证的token信息。所以当切换用户时,需要重新认证。

nae client执行download动作时,是将服务器端的代码同步到本地。 同步的过程中,“会删除本地有而服务器端没有的文件!!!” 所以在使用download之前,请先commit本地代码,以防代码丢失。

nae client执行upload的时候,同样,“会将本地没有而服务器端有的文件删除!!!” 所以在upload之前,如有必要,请先备份服务器端代码。

身份认证

$ nae auth

查看app状态

$ nae status appname       显示[dev]的app状态
$ nae status appname -o   显示[online]的app状态

启动app

$ nae start appname      启动[dev] app
$ nae start appname -o  启动[online] app

关闭app

$ nae stop appname     关闭[dev] app
$ nae stop appname -o 关闭[online] app

重启app

$ nae restart appname      重启[dev] app
$ nae restart appname -o  重启[online] app

调试app

$ nae debug appname 捕获服务器端调试信息,这是一个组合命令: stdout+stderr+restart

$ nae stdout appname 服务端console.log输出
$ nae stderr appname 服务端error输出

上传app

上传的时候,有需要排除的文件 比如.project .setting等文件,可以在app的根目录下创建一个.naeignore文件,每行一个正则表达,匹配则忽略文件和目录

$ nae syncup appname
$ nae sup appname     这个命令更方便

下载app

下载之后,目录中会有一个索引文件,.naeindex ,这是一个diff文件,不要删除它,client需要这个文件

$ nae syncdown appname
$ nae sdown appname  这个命令更方便

发布app

$ nae pub appname 将app发布到online模式

帮助信息

$ nae help

更新客户端

$ nae update  注意权限,如果安装的时候sudo了,请sudo执行这条命令

启动app

当cd到app目录中时,nae命令可以省略appname,比如:

$ nae start
# 重启
$ nae restart

.naeignore

.naeignore文件策略

. naeignore 文件用来控制syncup、syncdown时,过滤不必要的文件传输,比如一些用户数据、版本控制文件、服务器日志等等。 syncup的时候,使用本地的. naeignore文件, syncdown的时候,使用服务器端的. naeignore文件

.naeignore 编写范例:

每行一条规则;

规则       等价于正则表达    结果
db/*          => ^db\/.*$    过滤服务器根目录下的db目录下的所有文件,db目录不会被过滤
db            => ^db$    仅过滤服务器根目录下名为 db的文件|目录(如果目录,文件不被过滤)
log/*.error  => ^\/log\/.*\.error$    过滤服务器根目录下 log目录下的 .error后缀的文件
upload/*    => ^upload\/.*$    过滤上传目录下的所有文件
package.json   => ^package\.json$    过滤nae的配置文件
config.js        => ^config\.js$    过滤工程的配置文件

nae默认过滤 .svn .git .cvs目录
.naeignore 的匹配规则作用与相对于app根目录的文件路径 ,例如有一个app的名字叫 docs,
那么要排除 docs的 data/ 目录的上传下载 ,则需要规则 "data/.*"。 

支持的平台

linux shell 
windows git-bash
61 回复

非常棒的工具。

nae现在只支持php。对python和java的支持还在内测中,node.js更是遥遥无期。不知道楼主发这个想干什么

呃。。。你说的是sae吧?和nae不一样。。。

强烈支持,对于我这个命令控,很必要。。。

哦。我看错了。不好意思。谢谢提醒

囧,NAE 只支持NodeJS 。 对python和java的支持,不是NAE要做的事情哦。NAE 是 Node App Engine , 你要说的是 SAE(Sina App Engine)吧 ?

NAE client 要做的事情就是提供命令行模式的接口,方便程序的开发调试部署, :)

啥时候完全开放啊?还是要邀请码嘛?赐一个吧。。。

照上面的运行了一遍… 结果没有成功… ubuntu 12.04 的问题?
$ ls /usr/local/lib/nae/ client.tar.gz install.sh Jakefile.js lib nae readme.txt $ ls /usr/local/bin/nae ls: cannot access /usr/local/bin/nae: No such file or directory $ nae No command 'nae' found, did you mean: $ /usr/local/lib/nae/nae dirname: extra operand44’
Try dirname --help' for more information. /usr/local/lib/nae/nae: 90: /usr/local/lib/nae/nae: /lib/nae.js: not found

sudo ./install 的时候,输出了什么内容呢?有报错么?

/usr/local/bin/nae 是命令文件,试试

$ ln -s /usr/local/lib/nae/nae /usr/local/bin/nae 
$ nae -v

输出太长, 用了 $ ln … 然后好像能用了 但是 -v 选项真的是下面这样吗? $ nae -v
usage: >nae [cmd] [option]
example:>nae start appname
>nae debug appname
[cmd] can be:
auth get auth info , when installed client, auth first!
start [appname] sta

markdown 里面复制粘贴终端的内容有点纠结啊…

发现了一个问题,囧,这是之前的发布地址

$ wget http://cnodejs.net/client/install.sh
$ chmod +x ./install.sh
$ sudo ./install.sh

更新了一下,blog那边也更新了一下,http://blog.cnodejs.net/post/4ee89f36459ab3516e000005

@jiyinyiyong 失误了,客户端给的地址不对,刚刚列的安装地址是较早以前的一个版本,文章中的地址更新了, http://cnodejs.net/client/install.sh , 按上面重新安装,就ok了 :)

默认安装路径是否能改成env找到的node二进制路径? 更简单一些

很好的开始,不过,问题真心不少:

  • 命令执行环境的不连续:

    • 已经通过了 nae auth
    • 但是,多次失败,要求重新 auth
  • 命令不知道当前的调试项目:

    • 只有 nae sup 知道当前在哪个项目中
    • 其它各种命令都不知道,实际还是要指出目录
  • debug 命令真心无法使用

    • 俺的直觉是,每次使用 nae debug 都作以下事情:

      • sup 最新代码
      • 重启服务
      • 使用 curl 或是其它内置工具,返回服务端 信息,告之俺修訂是否正确
    • 现在是直接囧掉,

嗯嗯嗯,命令行工具是个非常 非常 包含好的调试习惯的开发/部署工具

  • 一定要从最自然的开发流程為綫索组织命令哈,

现在可以了, 直接成功

好建议 :)

  1. 需要查一下,有可能是提示信息不准。 另外 看看client的版本,上午有段时间版本不对~,看是不是这周末build的

    $ nae -v

  2. 如果当前路劲在app目录中,不需要输入appname,会自动识别,前提 app 根目录的目录名 == appname

  3. debug 目前的动作是 连接服务器 > pipe app的stdout | stderr 到命令行 > 重启app服务, 可以串上sup动作

  4. 一定一定,有什么好的建议,欢迎提出 , :)

@ZoomQuiet nae -v 看看版本,能回复我一下么? 你提到的几个问题,我都没能重现~

@fish 我新建了 titleleaf 应用, 执行命令的目录里有个 titleleaf/ 文件夹, 里面是应用然后我上传成功一次过,
但后来调试不知怎么把 titleleaf/ 里面的 .naeindex 删了
后来我调整了下, 重新用命令上传, 然后都是这个报错了
$ nae sup titleleaf
[INFO] * connection established !
[ERROR] - server index error ,try again!
[INFO] * connection closed !
我尝试了删除应用重新来, 但还是这个报错, 请问?..

哦,这个问题是服务器端的问题,你是把服务器上.naeindex删除了么? 看样子需要修一下 :)

@fish 应该是的. 放在服务器上的只剩下一个文件目录了, 古怪
那么我现在应该怎么做呢?
还有应用名和文件名必须要一样的是吗?

@jiyinyiyong 查了一下,应该是 .naeindex 文件里内容有问题,把文件内容设置为空试试

操作的时候,你在服务器端新建了 titleleaf 的应用,你在本地的workspace中执行 $nae sdown titleleaf 会在workspace 中建立一个 titleleaf 目录,并把服务器上的文件同步下来。

接下来你如果就在 workspace/titleleaf 中编辑、调试,那么nae的命令可以省略 appname执行,当然你不能去修改app目录下的 .naeindex这个文件。

$nae cmd appname   命令将对当前目录下的  ./appname 目录做操作

所以请确认app在当前目录是存在的

@fish NAE 像是针对应用名称有记录什么的, 我删除创建同名应用就不对
然后我改了名字, sdown, 再 sup, 这个时候上传成功
不过我接着改动一个文件, 再 sup 的时候又报错了
$ nae start
[INFO] * connection established !
[INFO] ================================
[INFO] * App “tittleleafs” start ok. [dev]
[INFO] ================================
[INFO] * connection closed !
$ ls
config.js diary index index.coffee index.js pa…
$ vim index.coffee
$ vim index.js
$ cd … $ nae sup tittleleafs
[INFO] * connection established !
[ERROR] - server index error,try again!
[INFO] * connection closed !

发现问题了,修复之后通知你 :)

Node App Engine Client Tool - v1.1 build:2012/02/11 01:49:58 http://cnodejs.net

好了,试试 :

$ nae update   #如果需要权限,请sudo执行

:)

@fish 谢啦, 我还担心我提那么问题会不会有点烦人的了… 呵呵
现在原来的那个 titleleaf 也能 sup 了, 没有遇到问题
有命令行之后本地写笔记更新笔记就方便多了

顶个楼,插入前排 O。O

@fish 是否,有空来开源卫士社区的周四语音讲座来吼 nae cli 的开发体验?服务端的配合?

嗯嗯嗯,如果你是用 mac 的话,就只能 虚拟机了,

@ZoomQuiet 听起来好高级,我了解一下哈

客户端的说明文档更新~ ,增加了online模式操作的说明

npm nae 名字抢到鸟,下一个大版本可以考虑使用 npm 安装哦 , :)

给力呀~~~~~支持支持 下过来试试看

MAC OSX 10.7 测试可用 至少安装成功

$ nae syncup appname $ nae sup appname 这个命令更方便

这两个命令功能是一样的吗?有没有什么差别啊?

没有区别,都是上传本地app 到dev模式

过滤文件, 写了

node_modules/express
node_modules/jade
node_modules/.bin

结果这3个目录还是上传了. Express这个是NAE本身就提供的吧? 能否默认就不上传,类似.git那样

NAE install ERROR in MacOSX 10.7.3 — Gist https://gist.github.com/2397499

原先通过 http://cnodejs.net/client/install.sh 方式安装了NAE 1.1

  • 然后,现在通过

    $ sudo npm install nae -g

  • 安装失败! 是否給以前的用户提供 uninstall 脚本?

手工删除 /usr/local/lib/nae 以及 /usr/local/bin/nae 后再安装 npm 版 nae 就 KO 了…

怎么好多应用都挂掉了 - - 还不能重启

v5weibo start fail, process exit code: 1, sig:null

windows git-bash下上传下载app都是返回

[INFO] * connection established !
[INFO] * No Change
[INFO] * connection closed !

注:NAE上并还没有任何文件!

上面那个是什么原因呢?还有执行命令:nae status appname时提示App "xxx"" not found,但是该appname确实存在NAE上的!

@kamaliang 哪个应用呢?

@kamaliang 可以上传代码把~~ 我试了可以~

#syncup server timeout 昨晚到今天都是这样

#bug反馈, window 平台。 nae auth , nae syncdown和nae syncup命令失败。

本机,64位window下,nae auth认证失败

我是64win7 成功了

@fish 可以上传a目录到bapp么。。开发的目录不一定抢得到域名

$ nae syncup acmer now you are working on app : nodeChat but you are trying : syncup:acmer please leave current dir , cd to another path first!

这个可以改改?

请问我的版本是最新的吗 怎么是0.1.15 不是1.1 Node App Engine Client Tool - v0.1.15 http://cnodejs.net

而且执行nae auth 提示success 之后 需要ctrl+c 推出来 ,不过执行 nae status appname 等命令都提示

[ERROR] * you don’t have the app’s permission . auth failed ! [INFO] * connection closed !

到当前目录 nae synup 这样不简单吗

nae start

[INFO] * connection established ! [ERROR] tfrc start fail, process exit code: 1, sig:null [INFO] * connection closed !

nae -v Node App Engine Client Tool - v0.1.15 http://cnodejs.net

我也碰到了同样的问题,一直停在[INFO] * Auth success! 难道是Win环境下不支持?

我执行nae status huzhifengdemo提示找不到app,但我明明已经创建好了的 [ERROR] App “huzhifengdemo"” not found. 奇怪的是app后面怎么会多了一个“号

有没有同步单个文件或者目录的命令?

回到顶部