Скрипты 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 devnpm выполнит команду из поля 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.