Традиционно в unix исполняемые файлы не имеют расширения.
Например, в Linux и MacOS для вывода списка каталогов, которые вы вводите:
ls
Вы не печатаете
ls.exe
Другой пример, чтобы запустить службу Dropbox в Linux, вы можете набрать
dropbox
Вы не печатаете
dropbox.py
, хотя dropbox - это просто текстовый файл, содержащий код Python.
Unix (а также терминал bash в Windows) имеют функцию, при которой файл помечается как исполняемый (с помощью команды chmod
), а первая строка содержит:
#!
.. затем оболочка (программа, управляющая командной строкой) удалит первые два символа (#!
) и выполнит оставшуюся часть первой строки. Это часто называют линией shbang (sh = shell, !
= bang).
Поэтому, если вы хотите разработать программу командной строки в node.js, все, что вам нужно сделать, это запустить файл с #! /usr/bin/env node
:
#! /usr/bin/env node
// ^
// |
// the 'env' command will find the correct install path of node
console.log('hello world');
Затем используйте chmod
, чтобы сделать файл исполняемым:
chmod +x my-script.js
Конечно, создание программы, заканчивающейся на .js
, не выглядит "профессионально". Например, вы не вводите gulp.js
при запуске gulp и не набираете npm.js
при запуске npm
. Таким образом, люди следуют традиции и лишают своих исполняемых скриптов расширений - людям становится сложнее понять, что вы не написали программу на языке Си или ассемблере.