layout | title | date | categories |
---|---|---|---|
post
|
各种命令及参数(包含库管理)
|
2014-03-30 14:10:10 -0700
|
haxe
|
主要描述 haxe, haxelib, nekotools 三个命令, haxe 命令行会经常在 .hxml 文件中用到
haxedoc
haxedoc 命令已经被弃用,而改用了另一个叫haxelib dox, 但是 生成 xml 还是用的 haxe -xml 命令
haxelib
haxelib 用于管理 haxe库, haxelib run libname
可以调用指定库下边的 run.n 文件, 并将当前命令行路径作为最后一个参数传递.
以 haxelib run 运行的命令, 内部的 Sys.getCwd() 将返回 libname 所在的绝对路径,而不是调用的当前路径, 当前路径为 args 最后一个参数
而以 neko run.n 调用的命令 内部的 Sys.getCwd() 将则指向当前路径.
那么问题是如何区分应用是以 haxelib run %libname% 运行的还是以 neko %APP% 运行的??? 似乎没有办法
-
当一个 haxelib 有 ndll 目录时, haxelib path libname 会有一个 -L 的定义指向这个 ndll 目录.
-
命令行下只输入
haxelib
将显示一些帮助信息. -
命令行, 注: 很多命令是交互式的, 会提示你如何操作
Haxe Library Manager 3.2.0-rc.1 - (c)2006-2015 Haxe Foundation Usage: haxelib [command] [options] Basic install : 在线安装指定库, 或 hxml 文件中的所有库 upgrade : 在线更新所以已经安装了的库 update : 在线更新指定库 remove : 移除指定库(从磁盘上删除 haxelib 根目录中的库,但不会删除外部的 dev 库) list : 列出指定库或名称相匹配的库(如果指定参数) set : 设定库的版本, 用于多个版本库的选择, 注意:如果通过 haxelib dev 指定了开发版本, 那么 dev 版本仍优先于指定的版本号 # https://github.com/HaxeFoundation/hxcpp/issues/143 # haxe 3.2 new 和 delete 已经更名为 newrepo 以及 deleterepo new : 创建新的本地仓库, 将在当前目前创建一个 .haxelib 的目录, 当位于这个目录上时, haxelib 的所有操作将指向这个新建的目录 delete : 删除 new 创建的本地仓库(将从磁盘中), Information search : 在线搜询名称相关库, info : 在线列出指定库的详细信息, 全名匹配, 例: haxelib info lime user : 列出指定用户的信息及这个用户提交的所有 haxe 库. config : 打印 haxelib 仓库所在目录(绝对路径) path : 得到指定库的所在路径(绝对路径), 库的版本信息, 及 ndll 库目录(如果有的话) version : 当前 haxelib 自身版本 help : 显示可选列表 Development submit : 提交或更新自已写的 haxe 库到 haxelib 服务器 register : 注册 haxelib 新用户 local : 离线方式安装库, 压缩包名字随意. 例: haxelib local xxx.zip dev : 设置指定目录为库, 常用于 fork 别人的库 例: haxelib dev openfl fork_openfl_dir git : 连接下载 git 版本库, 需要 git 命令支持 Miscellaneous setup : 设置 haxelib 仓库路径(默认为 haxe 根目录的 lib) # 估计就是上边的被移除了的 new 和 delete newrepo : [EXPERIMENTAL] create a new local repository deleterepo: delete the local repository selfupdate: 更新 haxelib 自身 convertxml: 转换 haxelib.xml 文件为 haxelib.json run : 运行指定类库下的 run.n 文件 proxy : 设置 Http 代理. Available switches --flat : do not use --recursive cloning for git --always : answer all questions with yes --debug : run in debug mode --never : answer all questions with no --global : force global repo if a local one exists ============== 一些常用命令 ============== haxelib info lime #在线查询列出关于 lime 库的信息 haxelib list # 列出本地所有安装包,用`[]` 中适号包含着的为当前所使用版本 haxelib list li #列出本地包含 li 字符的库有哪些,其一些其它信息 haxelib install haxepunk #在线安装名为 haxepunk 的库 haxelib local some.zip #安装已经下载到硬盘上的库,通常用为 zip 格式, zip文件名随意 haxelib update stablexui #在线更新名为 stablexui 的库 haxelib upgrade #连网检测所有本地库是否存在更新,并提示是否更新 #下边命令是指定一个库的开发目录 #当你修改 某一个库的源码时,可以先复制一份到其它目录 #然后用 haxelib dev 指定使用这个目录的文件作为开发 haxelib dev libname directory_name haxelib dev haxeui G:\dev-haxeui # 以后调用 haxeui 库时将使用 G:\dev-haxeui 下的文件 # haxelib list haxeui 可以显示 haxeui 信息,是否使用了 dev haxelib dev haxeui #不带目录名 从dev模式中切换回来 haxelib selfupdate # 更新 haxelib 自已 haxelib remove libname #删除库,这个库将会从磁盘移除 haxelib run libname #运行 libname库目录下 编译为neko平台的 run.n 文件
-
开发并上传库 见:haxe.org/com/haxelib
一些库通过 haxelib.json 文件的 dependencies 可能指定了依赖库版本,这使得 dev 版本会被认为是旧的版本,因此对于 git 库可能需要以 haxe git 的方式安装.
hxml
hxml 就是将命令行下输入的 haxe 命令的文件形式, 需要注意的是 有一个特殊的叫 extraParams.hxml
的文件, 这个文件一般在一些 haxelib 中可以见到(和 haxelib.json 位于同级目录), 用于当使用 -lib libname 编译时附加一些编译参数. 如果是基于 openfl 的项目库,那么这个特殊文件将是 include.xml
hxml 的内容为 haxe --help 中的命令. 注释用 # 符号.简单示例:
# 这个符号后接的为注释内容
--macro Sys.println('Begin...')
-cp src
-lib format
-main Main
-js main.js
nekotools
nekotools 是一个安装 haxe 时附带的工具,nekotools 很简单只有二个命令
-
nekotools server
建立一个 web 服务器,可以用于 http 服务,这样可以不再依赖 apache 或 nigixnekotools server 不仅仅能将 html 输出到浏览器,还能处理 neko 文件并输出.
#做网页相关的东西时,很多功能需要以 http 的形式访问才能正常. #不带参数快速绑定当前目录到 localhost:2000 nekotools server # 绑定 d:\dev 目录到 0.0.0.0:80 nekotools server -p 80 -h 0.0.0.0 -d d:\dev
-
nekotools boot
将 neko平台的 .n 文件转换成独立的 exe 文件转换成的 exe 文件,需要 neko 环境才能运行(安装了haxe), 如果没有, 可以复制 neko 所需要的 dll 文件和 exe 文件放同一目录就行了.
haxe
Haxe Compiler 3.2.0 - (C)2005-2015 Haxe Foundation
Usage : haxe.exe -main <class> [-swf|-js|-neko|-php|-cpp|-as3] <output> [options]
Options :
# 添加源码目录, 通常我们习惯将源码放置于 src 目录下, 所以能经常看到 -cp src
-cp <path> : add a directory to find source files
# 编译代码为 javascript 平台的 .js 文件
-js <file> : compile code to JavaScript file
# 编译代码为 flash 平台的 .swf 文件
-swf <file> : compile code to Flash SWF file
# 解析代码为 flash 平台的 .as3 源码, 指定输出目录
-as3 <directory> : generate AS3 code into target directory
# 编译代码为 neko 平台的 .n 文件
-neko <file> : compile code to Neko Binary
# 编译代码为 php 平台的 .php 文件, 指定输出目录
-php <directory> : generate PHP code into target directory
# 编译代码为 c++ 平台的 .cpp 文件, 指定输出目录,
# 第一次编译时可能会花上一段时间, Tips: 可以编译成 neko 平台用于快速测试.
-cpp <directory> : generate C++ code into target directory
# 编译代码为 c# 平台的 .cs 文件, 指定输出目录, 需要安装 hxcs 库
-cs <directory> : generate C# code into target directory
# 编译代码为 java 平台的 .java 文件, 指定输出目录, 需要安装 hxjava 库
-java <directory> : generate Java code into target directory