Ошибка с Sharp/Libvips при установке узловых модулей в приложении Next

Вопрос или проблема

yarn install            
yarn install v1.22.22
info Файл блокировки не найден.
[1/4] 🔍  Разрешение пакетов...
предупреждение eslint > @humanwhocodes/[email protected]: Используйте @eslint/config-array вместо
предупреждение eslint > @humanwhocodes/config-array > @humanwhocodes/[email protected]: Используйте @eslint/object-schema вместо
предупреждение eslint > file-entry-cache > flat-cache > [email protected]: Rimraf версии до v4 больше не поддерживаются
предупреждение eslint > file-entry-cache > flat-cache > rimraf > [email protected]: Glob версии до v9 больше не поддерживаются
предупреждение eslint > file-entry-cache > flat-cache > rimraf > glob > [email protected]: Этот модуль не поддерживается и вызывает утечку памяти. Не используйте его. Посмотрите на lru-cache, если хотите хороший и проверенный способ объединения асинхронных запросов по значению ключа, который гораздо более комплексный и мощный.
предупреждение [email protected]: Пожалуйста, обновитесь до @mapbox/node-pre-gyp: неподдерживаемый пакет node-pre-gyp без области больше не поддерживается, и только пакет @mapbox с областью будет получать обновления в будущем
предупреждение node-pre-gyp > [email protected]: Rimraf версии до v4 больше не поддерживаются
предупреждение node-pre-gyp > rimraf > [email protected]: Glob версии до v9 больше не поддерживаются
предупреждение node-pre-gyp > [email protected]: Этот пакет больше не поддерживается.
предупреждение node-pre-gyp > nopt > [email protected]: Этот пакет больше не поддерживается.
предупреждение node-pre-gyp > npmlog > [email protected]: Этот пакет больше не поддерживается.
предупреждение node-pre-gyp > npmlog > [email protected]: Этот пакет больше не поддерживается.
[2/4] 🚚  Получение пакетов...
[3/4] 🔗  Связывание зависимостей...
[4/4] 🔨  Сборка новых пакетов...
[-/2] ⡀ ожидание...
ошибка /Users/thedreamsaver/Downloads/DevDay Demo/devday-24-labs-demo-app/node_modules/sharp: Команда завершилась неудачей.
Код выхода: 1
Команда: (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)
Аргументы: 
Каталог: /Users/thedreamsaver/Downloads/DevDay Demo/devday-24-labs-demo-app/node_modules/sharp
Вывод:
sharp: Обнаружена глобально установленная libvips v8.15.3
sharp: Сборка из исходников через node-gyp
gyp info это сработает, если закончится ok
gyp info использование [email protected]
gyp info использование [email protected] | darwin | arm64
gyp info поиска Python, используя версию Python 3.12.6, найденную по адресу "/opt/homebrew/opt/[email protected]/bin/python3.12"
gyp info spawning /opt/homebrew/opt/[email protected]/bin/python3.12
gyp info аргументы разведения [
gyp info аргументы разведения   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info аргументы разведения   'binding.gyp',
gyp info аргументы разведения   '-f',
gyp info аргументы разведения   'make',
gyp info аргументы разведения   '-I',
gyp info аргументы разведения   '/Users/thedreamsaver/Downloads/DevDay Demo/devday-24-labs-demo-app/node_modules/sharp/build/config.gypi',
gyp info аргументы разведения   '-I',
gyp info аргументы разведения   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info аргументы разведения   '-I',
gyp info аргументы разведения   '/Users/thedreamsaver/Library/Caches/node-gyp/18.17.1/include/node/common.gypi',
gyp info аргументы разведения   '-Dlibrary=shared_library',
gyp info аргументы разведения   '-Dvisibility=default',
gyp info аргументы разведения   '-Dnode_root_dir=/Users/thedreamsaver/Library/Caches/node-gyp/18.17.1',
gyp info аргументы разведения   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
gyp info аргументы разведения   '-Dnode_lib_file=/Users/thedreamsaver/Library/Caches/node-gyp/18.17.1/<(target_arch)/node.lib',
gyp info аргументы разведения   '-Dmodule_root_dir=/Users/thedreamsaver/Downloads/DevDay Demo/devday-24-labs-demo-app/node_modules/sharp',
gyp info аргументы разведения   '-Dnode_engine=v8',
gyp info аргументы разведения   '--depth=.',
gyp info аргументы разведения   '--no-parallel',
gyp info аргументы разведения   '--generator-output',
gyp info аргументы разведения   'build',
gyp info аргументы разведения   '-Goutput_dir=.'
gyp info аргументы разведения ]
Трассировка (последний вызов первым):
  Файл "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py", строка 42, в <module>
    import gyp  # noqa: E402
    ^^^^^^^^^^
  Файл "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", строка 9, в <module>
    import gyp.input
  Файл "/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py", строка 19, в <module>
    from distutils.version import StrictVersion
ModuleNotFoundError: Нет модуля с названием 'distutils'
gyp ERR! ошибка конфигурации 
gyp ERR! стек Ошибка: `gyp` завершился с кодом выхода: 1
gyp ERR! стек     в ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:325:16)
gyp ERR! стек     в ChildProcess.emit (node:events:514:28)
gyp ERR! стек     в ChildProcess._handle.onexit (node:internal/child_process:291:12)
gyp ERR! Система Darwin 23.6.0
gyp ERR! команда "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/thedreamsaver/Downloads/DevDay Demo/devday-24-labs-demo-app/node_modules/sharp
gyp ERR! node -v v18.17.1
gyp ERR! node-gyp -v v9.3.1
gyp ERR! не ок

Получение ошибки с Sharp/Libvips при установке узловых модулей в приложении next. Моя версия узла v18.17.1

Ответ или решение

Ошибка при установке Sharp/Libvips в приложении Next.js может возникнуть по нескольким причинам. В вашем случае проблема заключается в том, что Python модуль distutils, необходимый для работы node-gyp, не найден. Ниже приведены шаги по устранению этой проблемы:

Шаги по устранению проблем с установкой Sharp/Libvips

  1. Установите Python 3 и модули, необходимые для node-gyp:
    Убедитесь, что у вас установлен Python и активированы все необходимые модули. node-gyp требует модуль distutils, который может не быть установлен по умолчанию в некоторых версиях Python 3. Чтобы установить его, выполните команды:

    sudo apt-get install python3-distutils

    Если вы используете MacOS, убедитесь, что distutils установлен в вашей версии Python. Обычно это можно сделать через Homebrew:

    brew install python

    После этого вы можете проверить, что distutils импортируется без ошибок:

    python3 -c "import distutils"
  2. Обновление node-gyp:
    Убедитесь, что у вас последняя версия node-gyp. Вы можете обновить его с помощью следующей команды:

    npm install -g node-gyp
  3. Установите необходимые зависимости для Sharp:
    Убедитесь, что у вас установлены зависимости, необходимые для компиляции Sharp и Libvips. Для этого выполните:

    brew install vips
  4. Очистка кэша npm:
    Иногда проблемы могут быть связаны с кэшем npm. Очистите его с помощью команды:

    npm cache clean --force
  5. Удалите папку node_modules и файл yarn.lock (или package-lock.json):
    Возможно, у вас остались устаревшие зависимости. Удалите node_modules и файл блокировки:

    rm -rf node_modules
    rm yarn.lock   # для Yarn
    rm package-lock.json  # для npm
  6. Переустановите зависимости:
    После всех предыдущих шагов попробуйте снова установить зависимости:

    yarn install  # для Yarn
    npm install    # для npm
  7. Проверка переменных окружения:
    Убедитесь, что переменные окружения для вашей среды настроены правильно, особенно если вы используете менеджеры версий Node.js, такие как nvm или n.

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

Оцените материал
Добавить комментарий

Капча загружается...