Запуск скриптов Node.js из командной строки
Обычный способ запуска программы Node.js — это использование глобально доступной команды node
(после установки Node.js) и передача ей имени файла, который нужно выполнить.
Если ваш основной файл приложения Node.js называется app.js
, вы можете запустить его, набрав:
node app.js
Выше вы явно указываете оболочке запустить ваш скрипт с помощью node
. Вы также можете внедрить эту информацию в ваш JavaScript-файл с помощью строки "shebang". "Shebang" — это первая строка в файле, которая сообщает ОС, какой интерпретатор использовать для запуска скрипта. Ниже приведена первая строка JavaScript:
#!/usr/bin/node
Выше мы явно указываем абсолютный путь к интерпретатору. Не во всех операционных системах node
находится в папке bin
, но во всех должна быть env
. Вы можете указать ОС запустить env
с node
в качестве параметра:
#!/usr/bin/env node
// ваш javascript код
Для использования shebang ваш файл должен иметь разрешение на выполнение.
Вы можете предоставить app.js
разрешение на выполнение, выполнив:
chmod u+x app.js
При выполнении команды убедитесь, что вы находитесь в том же каталоге, который содержит файл app.js
.
Передача строки в качестве аргумента в node вместо пути к файлу
Для выполнения строки в качестве аргумента можно использовать -e
, --eval "script"
. Выполняет следующий аргумент как JavaScript. Модули, которые предварительно определены в REPL, также могут использоваться в скрипте. В Windows при использовании cmd.exe
одинарная кавычка не будет работать корректно, поскольку она распознает только двойные "
для кавычек. В Powershell или Git bash, как "
так и '
могут использоваться.
node -e "console.log(123)"
Автоматический перезапуск приложения
Начиная с nodejs V 16, есть встроенная опция для автоматического перезапуска приложения при изменении файла. Это полезно для целей разработки. Чтобы использовать эту функцию, необходимо передать флаг watch
в nodejs.
node --watch app.js
Таким образом, при изменении файла приложение будет автоматически перезапущено. Прочитайте документацию по флагу --watch документация по флагу.