用于命令行实用程序的Javascript

rwa*_*ace 6 javascript command-line

鉴于需要编写命令行实用程序来执行常见任务,例如将文件上载到远程FTP站点,从远程MySQL数据库下载数据等.

在这种情况下使用JavaScript是否切实可行?我知道有一些JavaScript解释器可以从命令行运行,但是有像FTP和数据库访问这样的库,例如Java吗?如果是这样,最适合他们的地方是什么?(谷歌搜索关键字中的JavaScript似乎总是返回许多浏览器特定的页面.)

有没有办法将JavaScript程序打包为Windows上的独立可执行文件?

更新:我认为Python是这类工作的更好工具,但原始问题的答案仍然很好.

Che*_*eso 8

独立可执行文件?

顺便提一下,你问这个问题,我不确定你是否知道,但Windows脚本主机 - 包含在Windows中 - 允许你从命令行运行.js文件.您的javascript将不是可执行文件,它将保留为脚本,文本文件.该脚本在cscript.exe中运行,该脚本由WSH提供.没有编译要求.也许你知道这一切.

我以这种方式使用Javascript来实现Windows上的各种实用程序.

我认为你的直觉是对图书馆的可用性是正确的.你可以自己找到所有这些东西.虽然,一旦找到它们,将Javascript库打包为COM组件并允许从任何地方重复使用并不困难. 请参阅此处,了解在COM中打包Google Diff/Patch/Match Javascript库的示例.

附录:一旦COM中有一些代码可用,它就可以被机器上运行的任何Javascript使用.在WSH中运行的Javascript脚本可以使用COM对象的一些示例:


svi*_*nto 7

您可以使用Rhino将Javascript编译为Java字节代码,并可以访问所有Java库.

或者您可以使用JScript.net,并访问.net库..net包含一个生成exe文件的jsc.exe.

这两者都需要安装相应的框架才能运行.


Dav*_*son 6

到目前为止,Node.js是运行非浏览器JS的最佳环境.我使用过Rhino和SpiderMonkey,从基本功能(如错误处理方式)到使用该工具的社区规模等各方面都有很大差异.Node用于"服务器端"JS - 在JS中构建服务器应用程序.这很棒.但它对于构建命令行工具同样有效.

NPM包管理器(与Node捆绑在一起)提供了一个很好的全局目录,用于查找和安装包.它比PECL/Pear/CPAN等其他语言等效项目要好得多.几种高质量的工具,如JSHint,The Jade模板语言和CoffeeScript编译器都可以通过NPM/Node获得:

npm install -g jshint, coffee-script, jade
jshint my_code.js
jade < my.jade > my.html
Run Code Online (Sandbox Code Playgroud)

对于args解析,有像commander.js这样的包.我目前在我的underscore-cli命令行工具中使用了大量扩展版本的Commander .

对于搞乱JSON或执行命令行JS工作(类似于"perl -pe"),请查看underscore-cli - 这是一个非常强大的工具,用于处理JSON数据,处理下划线模板,以及从命令运行JS表达式 -线.我将它用于1001种不同的东西,否则这些东西真的很烦人.