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

40 javascript shell console

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

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

Bea*_*ith 67

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

以下是命令行JavaScript页面上的一些示例和屏幕截图.

Node REPL(Shell)

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

节点REPL(Shell)

从命令行评估JavaScript文件

使用以下内容创建文件:

console.log('Hello, world');
Run Code Online (Sandbox Code Playgroud)

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

评估JavaScript文件


Mat*_*att 17

如果你的测试需要访问DOM,那么总会有PhantomJS--一个无头(Webkit)浏览器.


cra*_*gmj 6

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

如果您在Windows上并且不想安装Node,则此Windows命令行javascript讨论使用Windows Scripting Host.但Node可能是标准化js的更好选择(它使用v8 Javascript引擎).


Roh*_*hra 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(); 
Run Code Online (Sandbox Code Playgroud)

评估它就像这样简单:

$ jjs hello.js
Hello Nashorn!
$
Run Code Online (Sandbox Code Playgroud)

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


Kir*_*uri 5

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