Вопрос или проблема
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
-
Установите 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"
-
Обновление
node-gyp
:
Убедитесь, что у вас последняя версияnode-gyp
. Вы можете обновить его с помощью следующей команды:npm install -g node-gyp
-
Установите необходимые зависимости для Sharp:
Убедитесь, что у вас установлены зависимости, необходимые для компиляции Sharp и Libvips. Для этого выполните:brew install vips
-
Очистка кэша npm:
Иногда проблемы могут быть связаны с кэшем npm. Очистите его с помощью команды:npm cache clean --force
-
Удалите папку
node_modules
и файлyarn.lock
(илиpackage-lock.json
):
Возможно, у вас остались устаревшие зависимости. Удалитеnode_modules
и файл блокировки:rm -rf node_modules rm yarn.lock # для Yarn rm package-lock.json # для npm
-
Переустановите зависимости:
После всех предыдущих шагов попробуйте снова установить зависимости:yarn install # для Yarn npm install # для npm
-
Проверка переменных окружения:
Убедитесь, что переменные окружения для вашей среды настроены правильно, особенно если вы используете менеджеры версий Node.js, такие какnvm
илиn
.
Если после выполнения всех вышеуказанных шагов проблема все еще сохраняется, пожалуйста, сообщите о конкретной ошибке или обновлениях, и мы постараемся помочь вам дальше.