Skip to content

Запуск скриптов Node.js из командной строки

Обычно программа Node.js запускается с помощью глобально доступной команды node (после установки Node.js) и передачи имени файла, который вы хотите выполнить.

Если ваш основной файл приложения Node.js — app.js, вы можете вызвать его, набрав:

bash
node app.js

Выше вы явно говорите оболочке запустить ваш скрипт с помощью node. Вы также можете встроить эту информацию в свой файл JavaScript с помощью строки "shebang". "Shebang" — это первая строка в файле, которая сообщает ОС, какой интерпретатор использовать для запуска скрипта. Ниже приведена первая строка JavaScript:

javascript
#!/usr/bin/node

Выше мы явно указываем абсолютный путь к интерпретатору. Не во всех операционных системах node находится в папке bin, но во всех должна быть env. Вы можете указать ОС запустить env с node в качестве параметра:

javascript
#!/usr/bin/env node
// ваш код javascript

Чтобы использовать shebang, ваш файл должен иметь разрешение на выполнение.

Вы можете дать app.js разрешение на выполнение, выполнив:

bash
chmod u+x app.js

При выполнении команды убедитесь, что вы находитесь в том же каталоге, который содержит файл app.js.

Передача строки в качестве аргумента node вместо пути к файлу

Чтобы выполнить строку в качестве аргумента, можно использовать -e, --eval "script". Оцените следующий аргумент как JavaScript. Модули, которые предопределены в REPL, также могут использоваться в скрипте. В Windows, при использовании cmd.exe, одинарная кавычка не будет работать правильно, потому что он распознает только двойные " для заключения в кавычки. В Powershell или Git bash можно использовать как " так и '.

bash
node -e "console.log(123)"

Автоматический перезапуск приложения

Начиная с nodejs V 16, есть встроенная опция для автоматического перезапуска приложения при изменении файла. Это полезно для целей разработки. Чтобы использовать эту функцию, необходимо передать флаг watch в nodejs.

bash
node --watch app.js

Таким образом, при изменении файла приложение будет перезапускаться автоматически. Прочтите документацию по флагу --watch flag documentation.