【问题标题】:Is it possible to run JavaScript files from the command line?是否可以从命令行运行 JavaScript 文件?
【发布时间】:2012-09-21 12:07:56
【问题描述】:

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

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

【问题讨论】:

标签: javascript shell console


【解决方案1】:

扩展使用 Node.js 的解决方案……

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

节点 REPL (Shell)

如果您在命令行中输入node 且不带任何参数,您将进入 Read-Eval-Print-Loop,或简称 REPL,也称为 shell。您可以在此处以交互方式输入 JavaScript 表达式并立即计算它们。

从命令行评估 JavaScript 文件

创建一个包含以下内容的文件:

console.log('Hello, world');

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我并不是说这是最好的解决方案,但它是可用的选项之一。我只是想传播意识,原因之一是 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

      【讨论】:

      • 赞成,但也许您可以将“Oracle Nashorn”更改为“Nashorn”;)
      • 从 Java 11 开始,Nashorn 已被弃用,JDK 15 已将其删除。它已被 GraalJS / GraalVM 取代
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        windows command line javascript 讨论了如果您使用的是 Windows 并且不想安装 Node.js,则使用 Windows 脚本主机。但 Node 可能是标准化 js 的更好选择(它使用 v8 Javascript 引擎)。

        【讨论】:

        【解决方案6】:

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

        cscript /E:jscript myJavaScriptFile.js
        

        【讨论】: