是否可以在不调用“节点”的情况下运行 Node.js 脚本?
Posted
技术标签:
【中文标题】是否可以在不调用“节点”的情况下运行 Node.js 脚本?【英文标题】:Is it possible to run Node.js scripts without invoking `node`? 【发布时间】:2011-06-15 22:45:20 【问题描述】:我喜欢 javascript,所以当我听说 Node.js,一个基于 V8 的 Javascript 运行时,我很兴奋。我更愿意在 Javascript 中编写我的 shell 脚本。我的问题是:如何在不调用node ~/Scripts/myscript.js
的情况下运行我的脚本?在我chmod +x
我的脚本之后,它会尝试作为 bash 脚本而不是 Node.js javascript 运行。
【问题讨论】:
恕我直言,这属于 ***.com @akira 我在这里发布它是因为它涉及工具使用而不是编程主题。我的问题是关于操作系统如何处理脚本文件,而不是关于如何编写脚本。 在 Geany 中实际上很容易做到这一点:***.com/questions/12464679/… 【参考方案1】:使您当前的 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
【讨论】:
其实他应该用#!/usr/bin/env node
。 PS:以 root 身份安装 Node 是……作为一个坏主意,始终将其安装在 ~/.local
中,还应该在那里安装 npm。否则必须 sudo npm 来安装东西,你的节点包可以有安装后脚本;)
@Ivo Wetzel 我将如何将我的 Node.js 安装移动到 ~/.local?我应该卸载并重新安装吗?我使用“make”从源代码构建
卸载当前的,然后参考这个要点:gist.github.com/579814#file_xgd_freedesktop.org_style.sh
脚本完成运行后如何保持终端窗口打开?我注意到当我尝试在终端中运行脚本时,终端窗口通常会快速打开和关闭,而不是保持打开状态。
@AndersonGreen 打开一个新窗口然后cd
到您要运行的脚本目录,然后键入./YourScriptName
运行它。【参考方案2】:
您总是可以简单地创建一个为您运行节点的 shell 脚本。
或者,如果你想创建一个可以在没有安装 node.js 的环境中运行的脚本,你可以使用installer-maker。
【讨论】:
以上是关于是否可以在不调用“节点”的情况下运行 Node.js 脚本?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不使用 socket.io 的情况下在节点中制作聊天应用程序
是否可以在不使用 express 作为 vue js 的后端的情况下使用纯节点 js? [关闭]
是否可以在不调用 open() 的情况下创建 CallOut 内容