是否可以在不调用`node`的情况下运行Node.js脚本?

时间:2011-01-25 05:20:41

标签: macos command-line node.js

我喜欢javascript,所以当我听说基于V8的Javascript运行时Node.js时,我很兴奋。我更喜欢在Javascript中继续我的shell脚本。我的问题是:如何在不调用node ~/Scripts/myscript.js的情况下运行我的脚本?在我chmod +x我的脚本之后,它尝试以bash脚本而不是Node.js javascript运行。

2 个答案:

答案 0 :(得分:35)

是什么让你当前的shell启动bash是你的当前shell(bash?)不知道如何处理file.js.这就是为什么unix的众神发明了shebang

字符序列由字符编号和感叹号(#!)组成,当它作为文本文件第一行中的前两个字符出现时。在这种情况下,类Unix操作系统中的程序加载器将第一行的其余部分解析为解释器指令,并使用指定为参数的任何命令行选项调用字符序列后指定的程序。

所以,在你的情况下,我会尝试把

 #!/usr/bin/env node

位于脚本的顶部。你可以看到,例如在'inode'(交互式node.js)shell中应用了beeing,这可能是另一个触发脚本的选项。

https://github.com/bancek/node-interactive-shell/blob/master/inode.js

答案 1 :(得分:0)

您始终可以创建一个为您运行节点的shell脚本。

或者,如果要创建可以在没有安装node.js的环境中运行的脚本,可以使用installer-maker