Выбор ответа Junior Пакеты и зависимости обновлено

Почему vite запускается из npm run

Вопрос

В терминале команда vite пишет «command not found», а npm run dev со скриптом "dev": "vite" работает. Почему?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: npm run добавляет nodemodules/.bin в PATH. Пакеты с бинарями кладут ссылки в nodemodules/.bin, и npm на время скрипта дописывает эту папку в PATH.

Варианты ответа

  1. npm run запускает скрипты в изолированном Docker-контейнере
  2. npm run ищет команду в глобально установленных пакетах
  3. Скрипты в package.json выполняются в Node.js, а не в shell
  4. npm run добавляет node_modules/.bin в PATHправильный ответ

Разбор

Пакеты с бинарями кладут ссылки в node_modules/.bin, и npm на время скрипта дописывает эту папку в PATH. Из терминала то же самое запускается через npx vite.

  • Docker тут ни при чём.
  • Глобальной установки vite нет, иначе работала бы и прямая команда.
  • Скрипты выполняются в shell (sh или cmd), просто с расширенным PATH.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.