Главная / Блог / Что делать при ошибке прав npm в Node.js 24? Исправление для новичков на Mac в 2026 году
ENGINEERING_BLOG · 2026.10.20

Что делать при ошибке прав npm в Node.js 24? Исправление для новичков на Mac в 2026 году

Симптом → npm сообщает EACCES при глобальной установке → сначала проверьте пути Node.js и npm, затем выберите менеджер версий; не запускайте установку через sudo.
Такой порядок подходит, если отказ появляется при установке общей команды, а не при установке зависимостей конкретного учебного проекта.

Эта инструкция для студентов, которые установили Node.js 24 и впервые увидели отказ в терминале.
Она пригодится и на школьном или удалённом Mac, где у вас нет прав администратора.
Если проект работает, но вам иногда нужна глобальная команда, здесь вы сможете выбрать между локальным запуском и изменением настройки npm.

SECTION 01Границы ошибки npm

EACCES означает, что программе не удалось выполнить операцию из-за ограничений доступа. Сначала определите, что именно вы устанавливали и какой путь указан в сообщении. Не исправляйте права и не удаляйте каталоги, пока не установили, к какой части среды относится отказ.

Различайте два случая:

  • Зависимости проекта — пакеты, необходимые конкретному учебному проекту. Установка обычно выполняется из папки проекта, а сами зависимости относятся к нему.
  • Глобальные пакеты — общие инструменты, которыми можно пользоваться из разных проектов. Аргумент -g означает, что npm устанавливает пакет глобально; это похоже на установку инструмента для нескольких уроков, а не только для одной папки.

В документации npm о глобальной установке описан именно второй вариант. Если вы запускали npm install внутри проекта и сообщение указывает на каталог проекта, не переходите сразу к настройке глобальной папки. Причина может быть в правах на файлы проекта, его конфигурации или инструкциях курса.

Запишите команду, которую запускали, и сохраните часть вывода с путём, куда npm не смог записать. Это позволит отличить отказ при установке общей команды от ошибки установки зависимостей. При публикации вывода в чате курса удалите или замаскируйте личное имя пользователя и другие сведения, которые не хотите раскрывать.

Сценарий из практики может выглядеть так: в проекте всё запускается, но при попытке установить команду для занятий npm сообщает об отказе в системном каталоге. В этом случае не следует переустанавливать зависимости проекта: сначала проверьте, куда направлена глобальная установка и какая версия Node.js активна в текущем терминале.

SECTION 02Пути Node.js и npm

Откройте новый терминал и выполните команды проверки:

command -v node
command -v npm
node -v
npm -v
npm config get prefix

command -v показывает, какой файл терминал найдёт первым. Переменная PATH — это список папок, в которых оболочка ищет программы; её можно представить как перечень адресов для поиска команды. npm config get prefix показывает основу каталога для глобальных пакетов. Назначение глобальных каталогов объясняет справка npm о папках.

Сравните полученные пути с тем, который приведён в сообщении об ошибке. Если отказ относится к системному каталогу, куда ваша учётная запись не может записывать, проблема может быть в расположении глобальной установки. Если Node.js и npm находятся в неожиданных разных местах, в PATH могли остаться следы прежней установки. Это повод разобраться в происхождении путей, а не удалять найденные файлы.

Чтобы понять, какие настройки применяются, выполните:

npm config get userconfig
npm config get globalconfig
npm config list

Команды показывают, где находятся конфигурационные файлы и какие параметры использует npm. Не пересылайте их вывод без проверки: в нём могут быть личные пути или сведения о настройках реестра пакетов. Описание параметров и их приоритетов находится в справочнике конфигурации npm.

Не определяйте актуальность вашей версии Node.js только по номеру в названии курса. Сведения о статусе веток проверяйте на официальной странице выпусков Node.js, а файлы Node.js 24 — в официальном архиве этой версии. Статус версий со временем меняется, поэтому при расхождении между инструкцией курса и установленной версией сначала уточните требования курса.

Остановитесь, если путь из ошибки относится к управляемому школьному каталогу или вы не знаете, какая установка создала найденные пути. Запуск команд с повышенными правами не поможет выяснить происхождение файлов и может изменить общую среду устройства.

SECTION 03Выбор безопасного способа исправления

Используйте эту развилку как инструмент принятия решения. Отмечайте подходящее условие и выполняйте только соответствующую ветку.

  • [ ] Курс требует конкретную версию Node.js, а разные проекты используют разные версии → выберите менеджер версий Node.js. Это способ управлять несколькими комплектами Node.js и переключаться между ними. Перед переходом проверьте требования курса и убедитесь, что менеджер совместим с настройками вашей оболочки. После выбора версии проверьте, что команды node и npm берутся из одного комплекта.
  • [ ] Курс не требует менеджера версий, а отказ возникает только при записи глобальных пакетов → рассмотрите пользовательский каталог. Он находится в вашей домашней папке, а не в общей системной области. Этот вариант требует согласованно настроить prefix npm и PATH.
  • [ ] Инструмент нужен только одному проекту, и курс предусматривает локальный запуск → используйте команду проекта или способ запуска, указанный преподавателем. Так можно обойтись без изменения общей среды, но только если такой способ поддерживается проектом.
  • [ ] Mac принадлежит школе, конфигурационные файлы защищены или менять настройки запрещено → не обходите ограничение. Попросите администратора подготовить среду или уточните, какие команды разрешены для курса.
  • [ ] Вы не можете объяснить, почему Node.js и npm обнаруживаются в разных неизвестных папках → пока не меняйте prefix, PATH и права. Сначала выясните историю установок или попросите помочь преподавателя либо администратора.

npm в официальном руководстве по устранению EACCES рассматривает менеджер версий как рекомендуемое направление, а каталог пользователя — как альтернативу. Эти варианты не являются гарантией для любого Mac: результат зависит от способа установки Node.js, конфигурации оболочки и правил управления устройством.

У каждого решения есть ограничения. Менеджер версий удобен, если учебные проекты требуют разные версии Node.js, но вам придётся следить за активной версией в каждом терминале. Пользовательский каталог помогает избежать записи в системную папку, но глобальная команда может не находиться, если её каталог bin не добавлен в PATH. Локальный инструмент проекта не затрагивает общие настройки, однако он доступен только в рамках проекта и не заменяет глобальную команду, если курс требует именно её.

Не начинайте с команды из чужой инструкции, если она меняет владельца системного каталога, удаляет установку Node.js или запускает npm с sudo. Такие действия могут смешать права файлов, созданных от имени пользователя и администратора, и сделать исходную причину менее очевидной. Сначала используйте вывод проверочных команд, чтобы выбрать правильную ветку.

SECTION 04Пользовательский каталог и конфигурация оболочки

Если вы выбрали каталог пользователя, сперва убедитесь, что можете изменять собственные настройки npm и оболочки. На школьном устройстве проверьте правила администратора: если изменения запрещены, остановитесь и запросите разрешённый способ работы.

Сверьте текущий prefix, затем выберите каталог внутри домашней папки. В руководстве npm по ошибкам EACCES приведена логика настройки пользовательского каталога. Следуйте актуальной документации, а не командам из случайного обсуждения. Не меняйте права системных папок ради обхода отказа.

После выбора каталога проверьте, где находится оболочка:

echo "$SHELL"

Оболочка читает свои настройки при запуске; поэтому путь для глобальных команд нужно добавить в PATH в подходящий файл конфигурации. Сначала выясните, какой файл применяется именно у вас, затем внесите одну согласованную запись по инструкции npm. Не добавляйте несколько похожих строк наугад: если позднее команда запускается не из той папки, будет сложнее понять, какая запись повлияла на поиск.

После изменения откройте новый терминал и снова выполните npm config get prefix, command -v npm и echo "$PATH". Новый терминал нужен, чтобы проверить уже перечитанную конфигурацию. Если prefix указывает на пользовательский каталог, но команда по-прежнему не находится, проверьте, включён ли соответствующий bin в PATH.

Если в выводе есть незнакомые каталоги или настройки противоречат друг другу, вернитесь к проверке источников, а не добавляйте новые значения. Не пытайтесь исправить неопределённость массовым удалением конфигурационных файлов: это может затронуть другие проекты или инструменты, которые используют тот же Node.js.

SECTION 05Проверка после исправления

Проверяйте результат по симптомам, а не повторяйте установку без разбора.

Сначала откройте новый терминал и запустите:

node -v
npm -v
command -v node
command -v npm
npm config get prefix

Если вы выбрали менеджер версий, убедитесь, что активна версия, требуемая курсом, и что node с npm относятся к выбранной установке. Если вы изменили пользовательский каталог, проверьте соответствие prefix и PATH. Если вы ничего не меняли, а ошибка оказалась связана с зависимостями проекта, вернитесь к его инструкции и не трогайте глобальные настройки.

Затем проверьте сам учебный проект: перейдите в его папку и выполните предусмотренную курсом установку или запуск. Не удаляйте файл блокировки зависимостей и не очищайте каталог зависимостей только из-за того, что ранее не удалась глобальная установка. Эти операции могут изменить состояние проекта, не исправив исходный отказ.

Если глобальная установка завершилась успешно, но терминал не находит команду, это отдельный симптом. Сопоставьте prefix, содержимое PATH и путь, который показывает command -v. Не устанавливайте пакет повторно через sudo: сначала выясните, какая папка должна содержать исполняемую команду и видит ли её оболочка.

Встроенный терминал редактора может запускаться с другим профилем оболочки, чем системный терминал. Если команда работает в одном окне, но не находится в редакторе, проверьте настройки его терминала. Документация редактора о профилях терминала описывает, как выбирается профиль. Не меняйте настройки проекта, пока не убедились, что проблема возникает именно в редакторе, а не в самой установке.

Если ошибка повторяется в системном каталоге, пути Node.js и npm неизвестны либо устройство не разрешает изменять конфигурацию, остановитесь. Передайте преподавателю или администратору команду, которую вы запускали, и путь из сообщения, скрыв личные данные. Это даст им проверяемые сведения вместо набора случайных изменений.

SECTION 06Частые вопросы

Различение глобальной и проектной ошибки

Если отказ появился после команды с -g, проверьте глобальный каталог и путь из сообщения. Если ошибка возникла при установке зависимостей проекта, изучите инструкцию проекта и путь, на который указывает npm. Переустанавливать Node.js в обоих случаях автоматически не нужно: сначала установите, какую именно папку программа не может изменить.

Работа без прав администратора

На личном Mac глобальная команда иногда может устанавливаться в каталог домашней папки, если корректно настроены npm и PATH. На школьном Mac изменение оболочки может быть запрещено правилами администратора. В таком случае используйте разрешённый локальный способ, если его поддерживает курс, или попросите администратора подготовить среду. Не обходите блокировку изменением системных прав.

Проверка учебного проекта

После исправления проверьте выбранную версию Node.js и npm, затем выполните команды, предусмотренные курсом, из папки проекта. Успешная глобальная установка сама по себе не подтверждает, что проект исправен; проектная ошибка также не доказывает, что нужно менять права на общий каталог. Сохраняйте зависимости и файлы проекта без изменений, если инструкция курса не требует обратного.

SECTION 07Mac как среда для занятий

Если причина оказалась в ограничениях компьютера, не смешивайте её с ошибкой npm. Например, школьная учётная запись может не позволять редактировать настройки оболочки, а компьютер без macOS не даст выполнить задания, которым требуется эта система. В обоих случаях сначала выясните требования курса; установка ещё одного пакета не добавит отсутствующие права или среду.

Если Mac у вас уже есть и проблема ограничена неправильным prefix или поиском команды, решайте её на текущем устройстве по проверенным путям. Удалённый Mac не нужен только ради исправления одной настройки. Если же для курса необходима macOS, а собственный компьютер её не предоставляет или школа не разрешает подготовить среду, временный доступ к Mac может оказаться практичнее покупки компьютера ради одного учебного этапа.

Перед выбором сравните возможности имеющегося компьютера с вариантами доступа к Mac через MACNOX и опубликованными условиями аренды. У текущей среды могут быть реальные ограничения: запрет на установку инструментов, несовпадение путей старой и новой версий Node.js или отсутствие macOS для требуемых занятий. Если вам нужна лишь глобальная команда npm, сначала проверьте локальную настройку; если же курс требует работы на Mac, а доступного устройства нет, аренда даст возможность пройти именно этот этап без покупки отдельного компьютера.

SECTION 08Часто задаваемые вопросы

Что проверить, если npm install -g завершается сообщением EACCES на Mac?

Сначала установите, действительно ли ошибка относится к глобальной установке: посмотрите команду, упомянутый в сообщении путь и результат `npm config get prefix`. Затем сравните расположение Node.js и npm. Если npm пишет в каталог, куда ваша учётная запись не может записывать, не запускайте установку через `sudo`: рассмотрите менеджер версий либо пользовательский каталог по инструкции npm. Если пути ведут к разным установкам, сначала разберитесь с их происхождением.

Почему Node.js и npm могут выдавать ошибку прав доступа?

Обычно важно не само сообщение EACCES, а путь, который npm пытается изменить. Он может относиться к глобальному каталогу, недоступному вашей учётной записи; также в терминале могут оказаться Node.js и npm из разных установок. Уточните полный путь из ошибки и результаты команд проверки. Так вы отличите проблему прав на глобальную команду от неудачной установки зависимостей внутри учебного проекта.

Можно ли установить глобальную команду npm на школьный Mac без прав администратора?

Иногда да: установка через менеджер версий или настройка глобального каталога внутри домашней папки могут не требовать записи в системный каталог. Но на управляемом школьном Mac действуют правила администратора, а вам может быть запрещено менять файлы конфигурации оболочки. Если настройки заблокированы, не пытайтесь обходить ограничения: используйте проектные команды, если их допускает курс, или попросите администратора подготовить среду.

Как проверить учебный проект после исправления прав npm?

Не меняйте зависимости только ради проверки прав. Вернитесь в каталог проекта, сверьте его инструкции и файлы управления зависимостями, затем выполните предусмотренную курсом установку и запуск. Отдельно проверьте нужную глобальную команду из нового терминала. Если проект продолжает работать, а ошибка появляется только при глобальной установке, это разные ситуации; не удаляйте каталог зависимостей и не меняйте его владельца без отдельного основания.

SECTION 09Дополнительные материалы