节点和shebang:帮助通过命令行执行


73

我的节点安装在:

/usr/local/bin/node

并且我添加了shebang:

#!/usr/local/bin/node

到文件顶部,并给我的节点应用程序文件755的权限,但是当我尝试运行时:

> ./my-app

我老了:

-bash: ./my-app: No such file or directory

我究竟做错了什么?


1
我的猜测是您只是在错误的目录中。 ls -l ./my-app应该有所帮助。
某人

糟糕,实际上,我想这是因为我在文件末尾添加了.js:从“ my-app.js”到“ my-app”中删除文件类型后,我才能使用它运行> ./my-app
询问

Answers:


201

shebang的节点是:

#!/usr/bin/env node

并非所有系统都将节点放置在同一位置,这可能是因为您错误地放置了该位置。这将找到所有这些。

资源


@询问您应该可以.js在那里进行工作
secretformula 2014年

1
嗯,然后我的头开始继续:我的文件名为“ my-app.js”,具有shebang,#!/usr/bin/env node并且节点位于“ / usr / local / bin / node”上。我想,一旦我删除了“ .js”,Mac OS便将其视为二进制文件,并且能够像这样执行它。但是现在我又感到困惑了-当然可以。
询问

2
@secretformula作为记录,它可以在我的macOS(Sierra)上运行,而无需扩展,就像应该的那样。chmod +x当然是必要的。
杰夫·休伊斯曼斯

这个答案详细解释了为什么这是正确的shebang。
Dan Dascalescu,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.