es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usar sharp en el modo sin servidor siempre falla.

Cuando invoco cualquier función en mi aplicación serverless, obtengo un error como el siguiente. Sin embargo, al instalar directamente “sharp” no obtengo errores. Además, cuando ejecuto las pruebas, “sharp” funciona perfectamente.

Módulo perdido: “/build/Release/sharp-darwin-x64.node” existe en los módulos del Node.

Error:
Algo salió mal al instalar el módulo “sharp”.

No se puede encontrar el módulo ‘../build/Release/sharp-darwin-x64.node’.
Pila de requerimientos:
– /.esbuild/.build/src/functions/function1/handler.js

Sistema:
– Serverless offline
– Node12 (x64)
– Chip M1 (arm64)
– Se usó el plugin Serverless esbuild

Soluciones intentadas:
– Eliminar y reinstalar los módulos del Node
– Instalar vips con brew
– https://github.com/lovell/sharp/issues/2460#issuecomment-739110356
– https://github.com/lovell/sharp/issues/2588#issuecomment-783254806

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la diferencia de arquitectura entre su sistema (Apple M1) y los binarios precompilados para Sharp. El mensaje de error indica que no puede encontrar el módulo “sharp-darwin-x64.node” en el directorio de compilación. Esto podría deberse a que el binario está compilado para arquitectura x64, y su sistema requiere la arquitectura arm64.

    Una posible solución es reconstruir el módulo de Sharp desde su código fuente en su sistema. Puede hacer esto ejecutando los siguientes comandos en el directorio de su proyecto:

    npm uninstall sharp
    npm install --arch=arm64 sharp
    

    Esto debería instalar el módulo de Sharp con la arquitectura correcta para su sistema. Asegúrese de reiniciar su aplicación sin servidor después de reinstalar Sharp.

    Alternativamente, puede intentar usar la versión 0.28.2 o posterior de Sharp, que incluye binarios precompilados para la arquitectura Apple M1 (arm64). Puede instalar esta versión ejecutando el siguiente comando:

    npm install sharp@0.28.2
    

    Nuevamente, asegúrese de reiniciar su aplicación sin servidor después de instalar Sharp.

    Si ninguna de estas soluciones funciona, puede comunicarse con la comunidad de Sharp para obtener más ayuda o considerar usar una biblioteca alternativa de procesamiento de imágenes.

Comments are closed.