用于命令行实用程序的Javascript

时间:2009-05-13 09:09:21

标签: javascript command-line

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

使用JavaScript进行此类操作是否可行?我知道可以从命令行运行JavaScript解释器,但是有像FTP和数据库访问这样的库的方式,例如, Java的?如果是这样,最适合他们的地方是什么? (Google在关键字中使用JavaScript搜索似乎总是会返回许多特定于浏览器的页面。)

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

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

6 个答案:

答案 0 :(得分:8)

独立可执行文件?

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

我以这种方式将Javascript用于Windows上的各种实用程序。

我认为你的直觉对图书馆的可用性是正确的。你有点自己来找到所有这些东西。虽然,一旦找到它们,将Javascript库打包为COM组件并允许从任何地方重复使用并不困难。在COM中打包Google Diff / Patch / Match Javascript库的See here for an example

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

答案 1 :(得分:7)

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

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

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

答案 2 :(得分:6)

到目前为止,

Node.js是运行非浏览器JS的最佳环境。我使用过Rhino和SpiderMonkey,从错误处理的基础知识到使用该工具的社区规模等各方面都有很大差异。节点适用于服务器端" JS - 在JS中构建服务器应用程序。这很棒。但它同样适用于构建命令行工具。

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

npm install -g jshint, coffee-script, jade
jshint my_code.js
jade < my.jade > my.html

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

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

答案 3 :(得分:4)

Rhino与JDK 1.6捆绑在一起,bin目录中的jrunscript.exe将允许您运行任何您想要的Javascript。由于它在Java下运行,因此您可以访问您可能拥有的任何Java库。

我们广泛使用命令行中的它。它非常擅长。

答案 4 :(得分:1)

一种方法是将这些实用程序编写为AIR应用程序 - 它们可以用JavaScript编写,不需要UI。他们可以访问命令行,并且现有的ActionScript 3库可以处理FTP等。可以在AIR应用程序中从JS调用这些ActionScript API。 AIR应用程序也可以访问sqlite数据库。

答案 5 :(得分:1)

jslibs是一个很好的独立JavaScript运行时,支持许多第三方开源库,如zlib,SQLite,NSPR,libiconv,libTomCrypt,OpenGL,......