Возможно ли запускать сценарии Node.js без вызова `node`? - PullRequest
28 голосов
/ 25 января 2011

Мне нравится javascript, поэтому я был взволнован, когда услышал о Node.js , среде исполнения Javascript на основе V8.Я бы предпочел, чтобы мои сценарии оболочки работали в Javascript.Моя проблема заключается в следующем: как я могу запустить свои скрипты без вызова node ~/Scripts/myscript.js?После того, как я chmod +x мой сценарий, он пытается работать как сценарий bash вместо javascript Node.js.

Ответы [ 2 ]

35 голосов
/ 25 января 2011

Что делает вашу текущую оболочку запускающей bash, так это то, что ваша текущая оболочка (bash?) Понятия не имеет, что делать с файлом file.js. Вот почему боги Unix изобрели шебанг для:

Последовательность символов, состоящая из знака числа символов и восклицательного знака (#!), Когда она встречается в качестве первых двух символов в первой строке текстового файла. В этом случае загрузчик программ в Unix-подобных операционных системах анализирует оставшуюся часть первой строки как директиву интерпретатора и вызывает программу, указанную после последовательности символов, с любыми параметрами командной строки, указанными в качестве параметров.

Итак, в вашем случае я бы попытался поставить

 #!/usr/bin/env node

вверху скрипта. Вы можете видеть, что beeing применяется, например, в оболочке 'inode' (interactive node.js), которая может быть еще одним вариантом запуска ваших сценариев.

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

0 голосов
/ 30 августа 2014

Вы всегда можете просто создать сценарий оболочки, который запускает узел для вас.

В качестве альтернативы, если вы хотите создать сценарий, который может работать в среде, в которой не установлен файл node.js, вы можетеиспользуйте installer-maker .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...