Как справиться с ошибкой восстановления Node-Gyp на Mac
node-gyp — это отличный инструмент, который позволяет разработчикам компилировать собственные дополнительные модули Node на нескольких платформах. Он очень популярен и широко используется сегодня, поэтому его часто включают в качестве зависимости для большинства пакетов NPM.
В большинстве операционных систем node-gyp не вызывает никаких проблем. Установка node-gyp и остальных пакетов NPM обычно проходит гладко и эффективно. Однако это касается не всех пользователей. Некоторые разработчики сообщали о проблемах с перестроением node-gyp в macOS, что приводило к не самым лучшим результатам для затронутых разработчиков. Эта ошибка также приводит к множеству подводных камней и допускает множество причин, по которым что-то может пойти не так.
Эта проблема не является чем-то новым. Разработчики, использующие более старые версии macOS, уже сталкивались с этой ошибкой. С выпуском macOS Catalina несколько разработчиков также сообщили о сбое восстановления node-gyp на Mac после обновления до новой версии macOS. Эта ошибка помешала разработчикам установить необходимые им пакеты node-gyp.
Если вы столкнулись с этой ошибкой, вы поймете, насколько неприятным может быть сбой перестроения node-gyp на Mac. Вы не сможете продолжить разработку своего приложения или программного обеспечения, пока не исправите эту ошибку. К счастью, мы сделали всю работу за вас. Если вы обнаружите, что из-за этой ошибки невозможно продолжить работу над проектом, вы можете попробовать любое из перечисленных ниже решений, чтобы устранить ее.
Что такое Node-Gyp?
node-gyp — это инструмент, используемый для компиляции надстроек Node.js, которые представляют собой нативные модули Node.js, написанные на C или C++. Эти модули должны быть скомпилированы на вашем компьютере с помощью такого инструмента, как node-gyp. Node-gyp работает на Windows, macOS и Linux.
Node-gyp, как правило, прост в использовании благодаря единообразному интерфейсу. Вы также можете использовать одни и те же команды для сборки или перестройки модуля на разных платформах. Node-gyp также поддерживает несколько целевых версий Node.
Если вы получаете ошибку npm gyp в Mojave или более ранних версиях macOS, вам необходимо еще раз проверить требования для работы node-gyp.
Вот требования, которые необходимо установить для работы node-gyp на macOS:
- Python v2.7, v3.5, v3.6 или v3.7
- Xcode — утилита, позволяющая разработчикам создавать приложения для macOS, iOS и iPadOS.
Вам также необходимо установить правильную версию инструментов командной строки Xcode, которые являются частью набора инструментов и библиотек для разработки программного обеспечения XCode.
Чтобы установить инструменты командной строки Xcode, следуйте приведенным ниже инструкциям:
- Запустите Xcode на вашем Mac.
- Выберите «Настройки» в меню Xcode.
- На панели «Общие» нажмите «Загрузки».
- Когда откроется окно «Загрузки», щелкните вкладку «Компоненты».
- Нажмите кнопку «Установить» рядом с «Инструменты командной строки».
- Войдите в систему, используя свою учетную запись Apple Developer, чтобы завершить процесс установки.
Если вы используете macOS Catalina, вы можете загрузить соответствующую версию инструментов командной строки для Xcode для вашей версии Catalina с здесь. Для macOS 10.15.3 имя файла должно быть Command_Line_Tools_for_Xcode_11.3.1.dmg. После того, как вы установили правильные компоненты, вы сможете успешно выполнить сборку с использованием node-gyp. Если вы столкнулись со сбоем восстановления node-gyp на Mac, вам необходимо просмотреть эти компоненты, чтобы выяснить, что пошло не так.
Как решить ошибку перестроения Node-gyp
Установка модуля узла — простой процесс. Вам просто нужно запустить определенные команды, и все будет готово. Если вы столкнулись с ошибкой восстановления node-gyp на Mac, вам нужно сделать шаг назад, чтобы выяснить, что произошло.
Но прежде чем вы это сделаете, вот несколько основных шагов по устранению неполадок, которые вы должны попробовать:
- Перезагрузите компьютер, чтобы избавиться от любых временных ошибок, которые могут повлиять на вашу систему.
- Закройте все ненужные приложения, чтобы освободить ресурсы компьютера.
- Временно отключите защитное программное обеспечение, такое как антивирус или программы защиты от вредоносных программ.
- Очистите свою систему с помощью приложения для восстановления Mac.
Если вы по-прежнему получаете сообщение об ошибке перестроения node-gyp, взгляните на приведенные ниже решения и посмотрите, какое из них вам подходит.
Исправление № 1. Дважды проверьте необходимые компоненты.
Первое, что вам нужно сделать, когда вы получаете ошибку npm gyp в Mojave или другой версии macOS, — это перепроверить требования к установке node-gyp. Как упоминалось в разделе выше, для его работы вам понадобятся три компонента, а именно:
- питон
- Xкод
- Инструменты командной строки Xcode
Не забудьте установить языки C и C++, которые потребуются для компиляции модулей. Если какой-либо из них отсутствует или не работает, вы обязательно получите сообщение об ошибке перестроения. Переустановка отсутствующего или неисправного компонента должна помочь устранить проблему.
Исправление № 2: обновите компоненты Node-Gyp.
Иногда установки этих компонентов недостаточно. Вы должны убедиться, что используете правильную версию для своей macOS. Вы можете выбирать между Python v2.7, v3.5, v3.6 или v3.7, в зависимости от того, какая версия вам подходит. Для Xcode вы можете скачать его с этого ссылка на сайт. Также необходимо установить последняя версия node-gyp на всякий случай.
Исправление № 3: проведите кислотный тест.
Вы можете проверить, правильно ли установлены инструменты командной строки Xcode на вашем компьютере и будут ли они работать с node-gyp, вы можете запустить кислотный тест, выполнив следующие действия:
- В Xcode выполните эту команду:
/usr/sbin/pkgutil – пакеты | grep CL - Если вы видите com.apple.pkg.CLTools_Executables в списке, у вас не будет проблем. Если это не так, то этот тест не прошел, и вам нужно переустановить его.
- Запустите следующую команду:
/usr/sbin/pkgutil –pkg-info com.apple.pkg.CLTools_Executables - Вы должны увидеть версию: 11.0.0 (или более позднюю), как указано в списке. Если это не так, то этот тест также не прошел, и вам нужно переустановить.
Исправление № 4: переключитесь на другую версию Python.
Многие затронутые разработчики отметили, что изменение версии Python, используемой для активной среды, помогло им решить проблему. Это как-то связано с совместимостью между версией macOS, версией Node и версией Python, которую вы используете. Некоторые пользователи обнаружили, что более старые версии Python, такие как v2.7, более стабильны, чем новые. Поэкспериментируйте с разными версиями и посмотрите, какая из них работает для вас.
Резюме
Сбой восстановления node-gyp на Mac может быть проблемой, а выяснение того, что пошло не так, может быть огромной тратой времени. Поэтому, если вы столкнулись с этой ошибкой, обратитесь к руководству выше, чтобы точно знать, что делать, чтобы исправить ошибку.