Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Скрипты npm и npx

Скрипт npm — это команда терминала, записанная в package.json под коротким именем. Вместо того чтобы помнить node --watch --env-file=.env src/server.js, вы пишете npm run dev. Так команды проекта одинаковы у всех разработчиков и на сервере.

Раздел scripts

Откройте package.json и замените раздел scripts:

{
  "scripts": {
    "start": "node src/server.js",
    "dev": "node --watch src/server.js"
  }
}

Слева имя скрипта, справа команда. Файл src/server.js появится в главе про HTTP, а пока можно указать там app.js.

Запуск

npm run dev

npm выполнит команду из поля dev. Для самых частых имён — start и test — слово run можно не писать:

npm start
npm test

Команда npm run без имени выводит список всех скриптов проекта.

Скрипты видят локальные пакеты

Внутри скриптов доступны программы из пакетов, установленных в проект. Если поставить prettier с флагом -D, его можно вызвать по имени:

{
  "scripts": {
    "format": "prettier --write src"
  }
}

npm run format отформатирует все файлы в папке src. Глобально ставить prettier не нужно — npm сам найдёт его в node_modules/.bin.

npx

npx запускает программу из пакета без скрипта. Если пакет установлен в проект, берётся он, если нет — npm временно скачает его:

npx prettier --check src
npx cowsay "Привет"

Первая команда проверит форматирование, вторая скачает пакет cowsay и нарисует корову со словом «Привет». npx удобен для разовых команд и генераторов проектов.

Запуск через node --run

В Node.js 22 появилась команда node --run. Она запускает скрипт из package.json быстрее, чем npm, но без некоторых его возможностей:

node --run dev

Частая ошибка

Свои скрипты, кроме start и test, нельзя запустить без слова run:

npm dev
Unknown command: "dev"

Пишите npm run dev. Если скрипт не находится и так, проверьте, что команда запущена из папки, где лежит package.json.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.