На этой странице

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

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

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

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

#!/usr/bin/env node

// ваш javascript-код

Чтобы использовать shebang, у файла должны быть права на исполнение. Дать app.js право на исполнение можно командой:

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

Чтобы выполнить строку как аргумент, можно использовать -e, --eval "script". Он вычисляет следующий аргумент как JavaScript. Модули, предопределённые в REPL, тоже можно использовать в скрипте.

В Windows при использовании cmd.exe одинарные кавычки будут работать некорректно, потому что он распознаёт для кавычек только двойные ". В Powershell или Git bash можно использовать и ', и ".

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

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

Node.js предоставляет встроенный запускатель задач (task runner), позволяющий выполнять определённые команды, описанные в вашем файле package.json. Это особенно полезно для автоматизации рутинных задач — запуска тестов, сборки проекта или линтинга кода.

Флаг --run позволяет запустить указанную команду из секции scripts вашего файла package.json. Например, если у вас такой package.json:

{
  "type": "module",
  "scripts": {
    "start": "node app.js",
    "test": "node --test"
  }
}

Вы можете запустить скрипт test с помощью флага --run:

Синтаксисом -- --another-argument можно передавать аргументы в нижележащий скрипт. Например, если вы хотите передать аргумент --port в скрипт start:

Это запустит скрипт start и допишет --port 8080 к выполнению команды, что эквивалентно запуску node app.js --port 8080.

Примечание: аргументы, переданные после --, пробрасываются в скрипт и не интерпретируются как CLI-флаги Node.js. Например, --watch, переданный таким образом, не поведёт себя как node --watch app.js.

Флаг --run устанавливает определённые переменные окружения, которые могут пригодиться в ваших скриптах:

  • NODE_RUN_SCRIPT_NAME: имя запускаемого скрипта.
  • NODE_RUN_PACKAGE_JSON_PATH: путь к обрабатываемому файлу package.json.

Запускатель задач Node.js намеренно более ограничен по сравнению с другими запускателями вроде npm run или yarn run. Он делает упор на производительность и простоту, опуская такие возможности, как запуск pre- или post-скриптов. Это делает его подходящим для простых задач, но он может покрывать не все сценарии.