
Для проектов с несколькими файлами удобнее использовать npm scripts. В файле package.json можно прописать команды вида «start»: «node app.js», что позволяет запускать скрипты одной командой npm start. Этот подход ускоряет работу и упрощает интеграцию с другими инструментами.
Для динамического выполнения кода можно применять require() или import. Они позволяют подключать модули и запускать отдельные функции из других файлов без необходимости повторного запуска Node.js. Такой метод особенно полезен при работе с библиотеками и повторно используемыми компонентами.
Если требуется автоматический перезапуск при изменении кода, стоит использовать утилиты вроде nodemon. Она отслеживает изменения файлов и запускает скрипт заново без ручного вмешательства, экономя время на разработку и тестирование.
Выбор способа запуска зависит от масштаба проекта: для простых скриптов достаточно командной строки, для сложных – комбинация npm scripts и инструментов автоматизации обеспечивает стабильность и удобство работы.
Запуск js файла через команду node в терминале
Для запуска JavaScript-файла в Node.js откройте терминал и перейдите в директорию с файлом с помощью команды cd путь_к_папке.
Запуск осуществляется командой node имя_файла.js. Например, если файл называется app.js, вводим node app.js и нажимаем Enter.
Если файл использует модули, убедитесь, что путь к ним указан корректно. Для локальных модулей используйте относительные пути, например require('./module.js'). Для глобально установленных пакетов достаточно указать их имя.
При работе с большим проектом удобно запускать файлы через пакетный менеджер, используя скрипты в package.json, например: npm run start, где start определен как node index.js.
Для отладки можно запускать Node.js с флагом --inspect или --inspect-brk, что позволяет подключать инструменты отладки и отслеживать выполнение кода пошагово.
Если скрипт использует переменные окружения, их можно передать при запуске: NODE_ENV=production node app.js. Это позволяет менять поведение приложения без изменения кода.
Node.js поддерживает ES-модули с расширением .mjs. Для запуска используйте node --experimental-modules файл.mjs или укажите "type": "module" в package.json, чтобы использовать стандартное расширение .js для модулей.
Использование npm scripts для автоматического запуска
npm scripts позволяют запускать JavaScript-файлы в Node.js без ручного ввода команд в консоль. Для этого используется секция "scripts" в файле package.json. Простейший пример:
{ "scripts": { "start": "node index.js" } }
После этого командой npm run start будет выполняться index.js. Для сложных сценариев можно создавать несколько скриптов:
| Имя скрипта | Команда | Назначение |
|---|---|---|
| start | node index.js | Основной запуск приложения |
| dev | nodemon index.js | Авто-перезапуск при изменении файлов |
| build | node build.js | Компиляция или подготовка проекта |
Для автоматизации последовательности действий используются встроенные средства npm. Скрипты можно вызывать друг из друга через npm run:
{ "scripts": { "clean": "rm -rf dist", "build": "npm run clean && node build.js" } }
При работе с проектами рекомендуется применять пакеты вроде concurrently для параллельного запуска нескольких задач, например сервера и watcher:
{ "scripts": { "start:dev": "concurrently \"npm run server\" \"npm run watcher\"" } }
npm scripts интегрируются с любыми инструментами Node.js: тестовыми фреймворками, линтерами, сборщиками. Это устраняет необходимость ручного вызова node для каждого файла и позволяет стандартизировать процесс запуска для всей команды.
Запуск файлов с аргументами командной строки

Node.js позволяет передавать параметры в скрипты через массив process.argv. Первый элемент process.argv[0] – путь к исполняемому файлу Node.js, второй process.argv[1] – путь к вашему скрипту, все последующие элементы – переданные аргументы.
Например, если запустить файл app.js командой node app.js first second, массив process.argv будет содержать ['путь/node', 'путь/app.js', 'first', 'second']. Для удобства часто используют деструктуризацию: const [, , arg1, arg2] = process.argv;.
Для обработки произвольного количества параметров применяют метод slice(2), чтобы получить массив только аргументов пользователя: const args = process.argv.slice(2);. Это позволяет передавать динамические значения в скрипт без изменения кода.
Для числовых или булевых параметров рекомендуется приводить тип явно: const port = Number(argv.port) или const debug = argv.debug === 'true'. Это исключает ошибки при передаче значений из командной строки.
Также можно сочетать позиционные аргументы и флаги: node app.js input.txt --verbose, где process.argv содержит оба типа, а yargs разделяет их автоматически, упрощая обработку конфигурации скрипта.
Использование аргументов командной строки в Node.js позволяет создавать гибкие скрипты, автоматизировать задачи и передавать настройки без изменения кода.
Автоматический перезапуск при изменении кода с nodemon
Запуск приложения через nodemon осуществляется аналогично обычному Node.js: nodemon app.js. По умолчанию nodemon отслеживает изменения файлов с расширениями .js, .json, .mjs, .ts.
Для оптимизации работы рекомендуется использовать файл конфигурации nodemon.json, где можно указать директории для наблюдения, игнорировать временные файлы и настроить конкретные расширения. Пример минимальной конфигурации:
{ "watch": ["src"], "ext": "js,json", "ignore": ["node_modules"] }
Если проект большой, полезно запускать nodemon с параметром --delay 2500 для задержки перезапуска на 2,5 секунды. Это предотвращает лишние перезапуски при пакетных изменениях файлов.
Для интеграции с пакетными скриптами используйте package.json: "start:dev": "nodemon app.js". После этого запуск будет доступен через npm run start:dev, что упрощает автоматизацию и работу с CI/CD.
Nodemon поддерживает использование команд через exec, например nodemon --exec "node --inspect" app.js, что позволяет подключать отладчик и одновременно сохранять преимущества автоматического перезапуска.
Выполнение отдельных функций из js файла через require

Для выполнения отдельных функций из JavaScript-файла в Node.js используется механизм модулей через `require`. В исходном файле функции нужно экспортировать. Например, создаём файл `utils.js`:
function sum(a, b) { return a + b; }
function multiply(a, b) { return a * b; }
module.exports = { sum, multiply };
В другом файле можно подключить только необходимые функции, используя деструктуризацию:
const { sum } = require('./utils');
console.log(sum(5, 3)); // 8
Если требуется подключить все функции, их можно использовать через объект:
const utils = require('./utils');
console.log(utils.multiply(4, 6)); // 24
Рекомендовано давать функции осмысленные имена и экспортировать только те, которые реально нужны. Это уменьшает зависимость модулей и ускоряет работу приложения. Для функций, используемых однократно, можно экспортировать их напрямую:
module.exports.sum = (a, b) => a + b;
Node.js кеширует модули при первом подключении, поэтому повторный `require` того же файла не вызывает повторное выполнение кода. Для динамического выполнения отдельных функций следует экспортировать их отдельными объектами и вызывать по мере необходимости.
Запуск js файлов в фоне с помощью pm2

npm install pm2 -g
После установки можно запускать файл в фоне командой:
pm2 start app.js --name "my-app"
Рекомендуется использовать ключ --name для удобного управления процессами. PM2 сохраняет процессы и позволяет автоматически их перезапускать при сбоях.
Основные команды для работы с процессами:
pm2 list– отображение всех запущенных процессов.pm2 stop my-app– остановка процесса по имени.pm2 restart my-app– перезапуск процесса.pm2 logs my-app– просмотр логов в реальном времени.pm2 delete my-app– удаление процесса из списка.
Для сохранения конфигурации и автоматического восстановления после перезагрузки системы:
pm2 save
pm2 startup
PM2 поддерживает режим cluster, который распределяет нагрузку между ядрами CPU:
pm2 start app.js -i max --name "my-app"
Рекомендации для стабильной работы:
- Использовать
pm2 logsдля регулярного контроля ошибок. - Применять
--watchтолько для разработки, чтобы перезапускался при изменении кода. - Сохранять конфигурацию через
pm2 saveпосле каждой настройки процессов. - Использовать JSON-конфигурацию
ecosystem.config.jsдля управления несколькими приложениями.
Пример ecosystem.config.js:
module.exports = {
apps: [
{
name: "my-app",
script: "./app.js",
instances: "max",
autorestart: true,
watch: false,
max_memory_restart: "500M"
}
]
}
Запуск через конфигурацию:
pm2 start ecosystem.config.js
PM2 обеспечивает надежное фоновое выполнение Node.js приложений, контроль ресурсов и быстрый доступ к логам без дополнительной настройки системы.
Вопрос-ответ:
Как запустить простой JS-файл через Node.js?
Для запуска JS-файла через Node.js нужно открыть терминал, перейти в папку с файлом и выполнить команду node имя_файла.js. Node.js обработает код и выведет результат в консоль. Этот способ подходит для любых скриптов без дополнительных настроек.
Можно ли запускать JS-файлы с аргументами?
Да, Node.js позволяет передавать аргументы через командную строку. Например, node script.js арг1 арг2. Внутри файла доступ к аргументам осуществляется через массив process.argv, где process.argv[2] будет содержать первый пользовательский аргумент.
Что делать, если при запуске файла возникает ошибка «Cannot find module»?
Ошибка «Cannot find module» появляется, если Node.js не может найти указанный модуль или файл. Нужно проверить правильность пути к файлу или убедиться, что необходимый модуль установлен через npm install имя_модуля. Также стоит убедиться, что имя файла и расширение написаны верно.
Можно ли запускать JS-файлы без открытия терминала вручную?
Да, можно настроить автоматический запуск через скрипты в package.json или использовать планировщик задач операционной системы. Например, в package.json можно добавить блок "scripts": {"start": "node script.js"}, а запускать через команду npm run start.
Чем отличается запуск JS-файлов через Node.js и через браузер?
Node.js выполняет код вне браузера и имеет доступ к файловой системе, сетевым ресурсам и другим функциям операционной системы. В браузере код работает в песочнице и ограничен безопасностью браузера: нет прямого доступа к файловой системе и некоторым API. Это делает Node.js более подходящим для серверных скриптов.
Каким образом можно запустить JavaScript файл через Node.js без установки дополнительных инструментов?
Для запуска JS-файла в Node.js достаточно открыть терминал, перейти в папку с файлом и ввести команду node имя_файла.js. Node.js автоматически интерпретирует код и выполнит его. Этот метод подходит для всех версий Node.js и не требует настройки дополнительных пакетов. При этом важно убедиться, что файл имеет правильное расширение .js и синтаксис соответствует стандарту JavaScript.
Можно ли запускать несколько JS файлов одновременно в Node.js и как это сделать?
Да, это возможно. Самый простой способ — использовать несколько терминалов и запустить каждый файл отдельно через команду node имя_файла.js. Альтернативный вариант — создать основной JS-файл, в котором подключать остальные через require() или import, если используется модульная система. Например, при использовании require('./file2.js') Node.js выполнит код второго файла в контексте первого. Такой подход удобен для объединения кода и управления выполнением нескольких скриптов.
