Найти в Дзене
Max Roslow

Посмотри и ответ придёт

Представьте, вы устроились на работу. Вам дали ссылку на репозиторий где уже созданный рабочий проект. Вы делайте git clone. И запускайте yarn для установки пакетов и вам выдается ошибка в консоли:

Можно пойти и написать в общий чат или вашему тимлиду, сказать, чтобы вам помогли. Это как вариант.

Но..

Можно пойти другим путем и попробовать разобраться в ошибке.

Посмотрим на первую строчку yarn install v1.22.10. Это первая команда которая запустилась "под капотом" после того как я ввел в терминал yarn. Она говорит нам о том, что сейчас запустилась установка зависимостей из package.json.

Вторая строчка warning package.json: No license field. Выдает нам предупреждение, что в проекте над которым мы работаем не указано поле license. Это поле обычно используется для указания лицензии, под которой распространяется ваш проект. Добавление поля license не является обязательным для всех проектов. Пропускаем, это не блокирует нам ничего.

Третья строчка warning my-project-ui@1.2.3 No license field. Говорит о том же что и третья, но уже про пакет my-project-ui, который мы устанавливаем не имеет поля license.

Следующая строчка [1/4] 🔍 Resolving packages... говорит о том, что началось получение пакетов из хранилища yarn и это шаг номер 1 из 4. Под получением понимается то, что yarn пошел искать у себя в хранилище все пакеты которые мы планируем установить. Он ищет каждый пакет и ставит у себя галочку "Этот пакет существует".

Строчка [2/4] 🚚 Fetching packages... говорит о том, что шаг 1 прошел успешно, он удостоверился, что все пакеты который использует наш проект существуют и теперь идет скачивание всех пакетов на наш компьютер.

И мы дошли до важной строчки. Она начинается со слова error:

error eslint-import-resolver-typescript@3.1.5: The engine "node" is incompatible with this module. Expected version "^12.20.0 || ^14.18.0 || >=16.0.0". Got "14.17.0"

В ней говориться, что версия node, которая установлена на моем компе не соответствует версии node, с которой нужно установить пакет eslint-import-resolver-typescript версии 3.1.5. Нам пишет, что ожидалась одна из версий "^12.20.0 || ^14.18.0 || >=16.0.0", а мы используем "14.17.0"

То есть мы дошли до сути проблемы. Мы не можем установить этот пакет из-за версии node. И нам нужно при уставновке пакетов использовать одну из версий: "^12.20.0 || ^14.18.0 || >=16.0.0". Нам не нужно удалять свою версию node. Мы можем ставить сколько угодно версий node на наш комп и использовать любую из них.

Для этого есть пакет nvm. Node version manager. Его нужно установить cебе на комп. Далее с помощью этого пакета установить нужную версию node. Мне пишет, что ожидалась одна из версий "^12.20.0 || ^14.18.0 || >=16.0.0", я выбираю любую, напрмер 14.18.0. Устанавливаю ее с помощью команды nvm install 14.18.0 и теперь мне нужно указать, что нужно использовать эту версию. nvm use 14.18.0.

Мы решили нашу проблему. Просто указав нужную версию node 14.18.0