Is it possible to run JavaScript files from the command line?
If your tests need access to a DOM there is always PhantomJS - a headless (Webkit) browser.
I am not saying that it is the best solution but it is one of the available options. I just want to spread awareness and one reason this is how Java runs javascript because it has an embedded JavaScript runtime already for a long time. First there was Rhino, and now, Java SE 8 shipped with a new engine called Nashorn, which is based on JSR 292 and invokedynamic. It provides better compliance with the ECMA normalized JavaScript specification and better runtime performance through invokedynamic-bound call sites. It can be used to run JavaScript programs from the command line. To do so, builds of Oracle’s JDK or OpenJDK include a command-line tool called jjs. It can be found in the bin/ folder of a JDK installation along with the well-known java, javac, or jar tools.
The jjs tool accepts a list of JavaScript source code files as arguments. Consider the following hello.js file:
var hello = function() {
print("Hello Nashorn!");
};
hello();
Evaluating it is as simple as this:
$ jjs hello.js
Hello Nashorn!
$
For more detail you can refer official documentation http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html
Expanding upon the solution to use Node.js…
Here are some examples and screenshots from a page on Command Line JavaScript.
The Node REPL (Shell)
If you enter node
on the command line with no arguments, you'll be in the Read-Eval-Print-Loop, or REPL for short, otherwise known as a shell. Here you can interactively enter JavaScript expressions and have them immediately evaluated.
Evaluate a JavaScript file from the command line
Create a file with the following content:
console.log('Hello, world');
From the command line, use node
to evaluate the file:
Yeah, It can be possible with node
.
Just create a js file, write some code, save that and go to the directory where you have saved your file, then enter node <your file_name>
.
You are done.
Note: You must have node
installed on your system.