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.
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:
#!/bin/bash cd /var/app/staging sudo -u webapp npm install sharpEx. 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¡Espero eso ayude!