2011-01-28 88 views
5

我有Windows平台的一个项目上工作,我碰巧做项目,服务器端 JavaScript的(是的,我实际使用服务器端的JavaScript)。我的大部分分析和研究都是通过在我的Mac上使用JSC进行的,这使我可以编写代码并获取解释器和加载.js文件的响应。现在我一直在使用Google,并且发现大部分关于Firebug或在线工具的结果。不过,我正在寻找更具指令性的东西。JavaScript控制台的Windows一样JSC

没有人有针对Windows平台的,不需要浏览器,可以从命令行中运行(与支持的外部.js文件加载)一个JavaScript解释器/控制台应用程序的好建议?

非常感谢,

+0

好问题,但接受的答案实际上并没有回答它。 cscript,正如phpied.com上的链接所建议的那样,不是交互式的。犀牛壳无法访问操作系统资源(文件,网络,管道等)。 – 2011-05-07 12:50:43

回答

4

node.js有一个Windows版本。安装程序是完全非侵入式的,它所做的只是将文件复制到Program Files文件并将路径添加到系统$ PATH env。变量。如果您然后启动不带参数的node.exe,它将用作REPL Javascript控制台。

可以加载.js文件是这样的:

> .load ./file/to/myscript.js 

退房REPL page in Node.js manual获取更多信息。

2

如果您的Java运行时间> = 1.5,你可以尝试jrunscript。它基于java scriptengines,JavaScript是默认支持的语言。

2

不完全等同于JSC,但仍..

我使用浏览器的开发工具(F12),在那里我进入控制台标签。而已。
适用于现代浏览器,Firefox通常需要Firebug。

主要优点是有一个交互式解释,而不需要加载一个真正的文件。

2

如果你不想安装任何外部工具,您可以使用Windows内置的Cscript.exe和短脚本来读取/ EVAL /打印/循环如下:

try { 
    throw {}; 
} catch(repl) { 
    while (repl.line != '.exit') { 
    if (repl.line) { 
     repl.err = null; 
     try { 
     repl.out = eval('(' + repl.line + ')'); 
     } catch (e) { 
     if (e instanceof SyntaxError) { 
      try { 
      repl.out = eval(repl.line); 
      } catch (e) { 
      repl.err = e; 
      } 
     } else { 
      repl.err = e; 
     } 
     } 
     if (repl.err) { 
     WScript.stdout.writeLine('Error: ' + repl.err.message); 
     } else { 
     WScript.stdout.writeLine(repl.out == null ? String(repl.out) : (typeof repl.out.toString == 'function' ? repl.out.toString() : Object.prototype.toString.call(repl.out))); 
     } 
    } 
    WScript.stdout.write('> '); 
    repl.line = WScript.stdin.readLine(); 
    } 
} 

保存,作为repl.js并运行cscript repl.js以获得类似于jsc的控制台。

1

除了Node.js的,JSDB是相当不错的。我再次检查了node.js,我认为它是now available作为单个可执行文件node.exe,它比JSDB更紧凑。所以我可能会使用它。

1

只是检查出DeskJS(https://deskjs.wordpress.com)。这正是你想要的!这是一个可移植的Windows控制台应用程序,可让您运行纯JavaScript代码,甚至加载任何现有的JS文件。它甚至支持在浏览器中实现的基本JS弹出框。您可以将您的命令保存为可在启动时运行的JS文件或将它们拖放到应用程序中。另外还有更多的东西,比如你可以为Sublime Text创建一个可以通过cmd运行JS文件的构建系统,它支持主题和片段e.t.c ...