¡Estamos en directo en Twitch!

¡Entra y participa!

Imagen de la etiqueta macos

Cómo arreglar el error 'gyp: No Xcode or CLT version detected' de macOS al hacer npm install

· 3 minutos de lectura · ¿Una errata? Edita el artículo

Si estás usando macOS es posible que al intentar hacer un npm install te aparezca un error en la terminal algo difícil de entender que se debe parecer a este y donde habla de que la herramienta xcodebuild requiere tener instalado Xcode:

$ npm install
> ckmeans@1.0.1 install /Users/project/node_modules/ckmeans
> node-gyp rebuild

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:305:16)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Darwin 16.0.0
gyp ERR! command "/usr/local/Cellar/node/8.1.3/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/project/node_modules/ckmeans
gyp ERR! node -v v7.0.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 

Este error significa que las Herramientas de Desarrollo (CLT) de Xcode no están instaladas o no se encuentran en el path que se espera. También es posible que las tengas instaladas pero todavía no has aceptado los términos de uso que te habilita poder usarlas.

Esto es porque node-gyp necesita estas dependencias para compilar tus dependencias ya que la versión de node que estás usando todavía no tiene los binarios pre-compilados para tu sistema. Es normal y tiene solución.

¿Cómo solucionar el error?

Existen diferentes formas de solucionarlo. Te recomiendo que las pruebes en orden, ya que cada una comporta distintas operaciones y la primera sería la más recomendada y sencilla.

  1. Volver a instalar las Command Line Tools con un comando en la terminal.
xcode-select --install

Te debería aparecer una ventana preguntándo si quieres instalar las herramientas de desarrollo que xcode-select necesita para poder ejecutarse. Le decimos que sí.

Ventana con el mensaje que va a instalar las herramientas ee desarrollo
Ventana con el mensaje que va a instalar las herramientas ee desarrollo

Tras esto, comenzará una descarga y después una instalación que puede durar unos minutos. Una vez finalizado, prueba de nuevo el comando de git en tu terminal y debería funcionar correctamente. 🎉

  1. Resetear el path

Es posible que al intentar instalar las herramientas de desarrollo te diga que ya están instaladas.

$ xcode-select --install
xcode-select: error: command line tools are already installed, 
use "Software Update" to install updates

En este caso, primero deberías ver si realmente tienes alguna actualización pendiente e instalarla.

Si no es el caso, podrás ejecutar el comando para hacer reset de toda la configuración:

$ sudo xcode-select --reset
  1. Borrar las actuales y reinstalar las herramientas de desarrollo.
sudo rm -rf $(xcode-select -print-path)
xcode-select --install

El primer comando recupera el path que usa tu sistema actualmente para alojar las herramientas de desarrollo, las borra de forma recursiva y las vuelve instalar.

  1. Instalarlas de forma manual:

Si todavía no funciona, prueba a descargar e instalar manualmente las Command Line Tools for Xcode desde la página de Apple Developers.

Comparte el artículo