Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

433
Vistas
La dependencia de Sharp JS rompe Express Server en Elastic Beanstalk

Siento que esto es inútil ya que mi acertijo se ha discutido en varios hilos diferentes, pero nada ha funcionado.

Tengo un servidor ExpressJS/node implementado en AWS Elastic Beanstalk. Cuando intenté implementar por primera vez hace varias semanas, no pude hacerlo funcionar hasta que finalmente me di cuenta de que una de mis muchas dependencias (una increíble herramienta de cambio de tamaño de imagen llamada Sharp) lo estaba rompiendo. Lo desinstalé y eliminé su uso en el servidor. Todo estuvo bien. Pero realmente lo necesito: funciona muy bien cuando ejecuto el servidor en mi dispositivo local.

Pero cuando reinstalo e implemento, aparece este error:

 npm ERR! path /var/app/staging/node_modules/sharp npm ERR! command failed npm ERR! command sh -c (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy) npm ERR! sharp: Are you trying to install as a root or sudo user? Try again with the --unsafe-perm flag npm ERR! sharp: Please see https://sharp.pixelplumbing.com/install for required dependencies npm ERR! sharp: Installation error: EACCES: permission denied, mkdir '/root/.npm'

La mayoría de las respuestas en la web son establecer unsafe-perm=true, como una variable de entorno, en un archivo llamado .npmrc, usando un archivo .config en .ebextensions que otorga permisos de escritura a root... Buscar en Google cualquier cosa relacionada con Sharp y Elastic Beanstalk, o mis errores específicos me traen un mar interminable de enlaces morados. Pero nada ha funcionado.

EDITAR: En lugar de seguir luchando para que Sharp funcione, encontré una herramienta alternativa llamada Jimp. Puede ser menos robusto que Sharp, pero realmente solo necesito cambiar el tamaño, y lo hace, por lo que si alguien más se está molestando por este problema, considere ahorrarse el dolor de cabeza y vaya con Jimp.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Consulte mi solución "alternativa" proporcionada en el siguiente problema de GitHub ( no se puede instalar en AWS ElasticBeanstalk con el nodo 16 n.º 3221 ) para obtener una explicación completa.

Solución:

  1. Cree las siguientes rutas de Platform Hooks en el directorio raíz de su paquete de aplicaciones.
  • .plataforma/ganchos/precompilación
  • .plataforma/confighooks/preconstruir
  1. Cree el siguiente script bash (00_npm_install.sh) con permisos de ejecución (chmod +x).
 #!/bin/bash cd /var/app/staging sudo -u webapp npm install sharp
  1. Valide la estructura del paquete de aplicaciones.

Ex. Ejemplo de estructura de proyecto:

 ~/my-app/ ├── app.js ├── index.html ├── .npmrc_bkp ├── package.json ├── package-lock.json ├── .platform │ ├── confighooks │ │ └── prebuild │ │ └── 00_npm_install.sh │ └── hooks │ └── prebuild │ └── 00_npm_install.sh └── Procfile
  1. ¡Despliega la Aplicación!

¡Espero eso ayude!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda