Почему файл bin / www не имеет расширения в express-generator? - PullRequest
2 голосов
/ 10 июля 2019

У меня всегда есть это сомнение, и я не знаю, почему файл внутри папки bin, который создает простой http-сервер, не имеет расширения .js.

Есть ли причина этого?

Ответы [ 2 ]

3 голосов
/ 11 июля 2019

Традиционно в 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. Таким образом, люди следуют традиции и лишают своих исполняемых скриптов расширений - людям становится сложнее понять, что вы не написали программу на языке Си или ассемблере.

0 голосов
/ 11 июля 2019

Поскольку www файл является исполняемым.

Откройте консоль, перейдите в папку bin и введите ./www. Сервер будет работать.

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