Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

432
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!