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
囧,NAE 只支持NodeJS 。 对python和java的支持,不是NAE要做的事情哦。NAE 是 Node App Engine , 你要说的是 SAE(Sina App Engine)吧 ?
NAE client 要做的事情就是提供命令行模式的接口,方便程序的开发调试部署, :)
sudo ./install 的时候,输出了什么内容呢?有报错么?
/usr/local/bin/nae 是命令文件,试试
$ ln -s /usr/local/lib/nae/nae /usr/local/bin/nae
$ nae -v
发现了一个问题,囧,这是之前的发布地址
$ wget http://cnodejs.net/client/install.sh
$ chmod +x ./install.sh
$ sudo ./install.sh
@jiyinyiyong 失误了,客户端给的地址不对,刚刚列的安装地址是较早以前的一个版本,文章中的地址更新了, http://cnodejs.net/client/install.sh , 按上面重新安装,就ok了 :)
很好的开始,不过,问题真心不少:
-
命令执行环境的不连续:
- 已经通过了 nae auth
- 但是,多次失败,要求重新 auth
-
命令不知道当前的调试项目:
- 只有 nae sup 知道当前在哪个项目中
- 其它各种命令都不知道,实际还是要指出目录
-
debug 命令真心无法使用
-
俺的直觉是,每次使用 nae debug 都作以下事情:
- sup 最新代码
- 重启服务
- 使用 curl 或是其它内置工具,返回服务端 信息,告之俺修訂是否正确
-
现在是直接囧掉,
-
嗯嗯嗯,命令行工具是个非常 非常 包含好的调试习惯的开发/部署工具
- 一定要从最自然的开发流程為綫索组织命令哈,
-
需要查一下,有可能是提示信息不准。 另外 看看client的版本,上午有段时间版本不对~,看是不是这周末build的
$ nae -v
-
如果当前路劲在app目录中,不需要输入appname,会自动识别,前提 app 根目录的目录名 == appname
-
debug 目前的动作是 连接服务器 > pipe app的stdout | stderr 到命令行 > 重启app服务, 可以串上sup动作
-
一定一定,有什么好的建议,欢迎提出 , :)
@jiyinyiyong 查了一下,应该是 .naeindex 文件里内容有问题,把文件内容设置为空试试
操作的时候,你在服务器端新建了 titleleaf 的应用,你在本地的workspace中执行 $nae sdown titleleaf 会在workspace 中建立一个 titleleaf 目录,并把服务器上的文件同步下来。
接下来你如果就在 workspace/titleleaf 中编辑、调试,那么nae的命令可以省略 appname执行,当然你不能去修改app目录下的 .naeindex这个文件。
$nae cmd appname 命令将对当前目录下的 ./appname 目录做操作
所以请确认app在当前目录是存在的
@fish 是否,有空来开源卫士社区的周四语音讲座来吼 nae cli 的开发体验?服务端的配合?
- 类似: CNode|[开源卫士]{2月16日语音讲座vol.42}ZQ: 网址云安node.js结合
- 在 YY 频道里説,通过 join.me 服务实时广播桌面,
嗯嗯嗯,如果你是用 mac 的话,就只能 虚拟机了,
过滤文件, 写了
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 脚本?
windows git-bash下上传下载app都是返回
[INFO] * connection established !
[INFO] * No Change
[INFO] * connection closed !
注:NAE上并还没有任何文件!
$ 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 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