установка npm внезапно перестала работать после попытки обновить gatsby-cli

#npm #gatsby #node-gyp #apple-silicon

Вопрос:

это будет сложно объяснить, потому что так много всего пошло не так сразу. Я работал на сайте Гэтсби и решил обновить gatsby-cli , поэтому я набрал (если я правильно помню) что-то вроде npm update -g gatsby (что не является правильной командой). Я получил сообщение о том, что было удалено около 800 пакетов. Когда я попытался запустить gatsby develop , gatsby команда больше не была распознана. Затем я понял npm , что сам был стерт. Поэтому я побежал brew install node и сумел переустановить npm и gatsby-cli . Но я уже несколько часов пытаюсь снова запустить и запустить сервер разработки, но безрезультатно.

К сожалению, трудно быть очень точным в том, что происходит не так, потому что я получаю так много разных сообщений об ошибках. Для контекста я использую Mac M1 (Apple silicon) с узлом, запущенным изначально. Я столкнулся с некоторыми проблемами при установке gatsby-plugin-sharp , которые, по-видимому, были связаны с моей установкой Xcode. Также , похоже, есть проблемы с node-sass тем, где я сейчас нахожусь.

Прямо сейчас, если я попытаюсь запустить npm install в каталоге моего сайта Gatsby, я получу сотни строк ошибок, которые я скопировал здесь.

Я уже пытался, но безуспешно:

  • Переустановка Xcode
  • Удаление package_lock.json
  • Очистка кэша npm
  • Установка Гэтсби 2 вместо Гэтсби 3

Все другие сайты Гэтсби на моей машине выдают аналогичные ошибки. Извините, что это такой расплывчатый вопрос, и с удовольствием сообщу более подробную информацию. Любая помощь будет признательна.

Ответ №1:

Переустановка вашего узла, вероятно, вызывает это. похоже, что node-gyp создает проблемы с вашей версией узла, вы можете попробовать использовать https://github.com/nvm-sh/nvm и понизьте версию вашего узла.

Я все еще запускаю свои сайты gatsby v3 на узле v. 12, и все работает нормально.

Комментарии:

1. Спасибо, я использовал NVM для понижения до узла v12, и после переустановки sharp мне удалось снова заставить все работать.