是否可以从命令行运行JavaScript文件?

时间:2012-09-30 08:18:09

标签: javascript shell console

我有几个JS文件,所以不是在控制台窗口(Firefox和Chromium)中复制和粘贴每个文件,如果可能的话,我想从shell调用它们。

每个JS文件都有测试函数,使用console.log显示它们是否正确。

6 个答案:

答案 0 :(得分:61)

扩展解决方案以使用Node.js ...

以下是Command Line JavaScript页面上的一些示例和屏幕截图。

节点REPL(Shell)

如果在命令行中输入node而没有参数,则您将进入Read-Eval-Print-Loop,或者简称为REPL,也称为shell。在这里,您可以交互式地输入JavaScript表达式并立即对其进行评估。

Node REPL (Shell)

从命令行

评估JavaScript文件

使用以下内容创建文件:

console.log('Hello, world');

从命令行,使用node评估文件:

Evaluate a JavaScript file

答案 1 :(得分:15)

如果您的测试需要访问DOM,则总是PhantomJS - 无头(Webkit)浏览器。

答案 2 :(得分:6)

您可以使用node.js执行此操作。您可以单独运行每个文件,但我当然假设文件之间没有依赖关系。

如果你在Windows上并且不想安装Node,那么windows command line javascript讨论使用Windows Scripting Host。但Node可能是标准化js的更好选择(它使用v8 Javascript引擎)。

答案 3 :(得分:6)

我并不是说这是最好的解决方案,但它是可用的选项之一。我只是想传播意识和一个原因,这就是Java运行javascript的原因,因为它已经有很长时间的嵌入式JavaScript运行时。首先是Rhino,现在,Java SE 8附带了一个名为 Nashorn 的新引擎,该引擎基于JSR 292和invokedynamic。它通过调用动态绑定的调用站点提供更好的符合ECMA规范化JavaScript规范和更好的运行时性能。它可用于从命令行运行JavaScript程序。为此,Oracle JDK或OpenJDK的构建包括一个名为 jjs 的命令行工具。它可以在JDK安装的bin /文件夹中找到,还有着名的java,javac或jar工具。

jjs工具接受JavaScript源代码文件列表作为参数。请考虑以下hello.js文件:

var hello = function() {
  print("Hello Nashorn!");
};

hello(); 

评估它就像这样简单:

$ jjs hello.js
Hello Nashorn!
$

有关详细信息,请参阅官方文档http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html

答案 4 :(得分:5)

是的,node可以实现。 只需创建一个js文件,编写一些代码,保存并转到保存文件的目录,然后输入node <your file_name>。 你完成了。 注意:您必须在系统上安装node

答案 5 :(得分:0)

对于那些急于使用Windows的用户,只需在命令提示符下尝试以下命令行:

cscript /E:jscript myJavaScriptFile.js