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

451
Vistas
No se puede leer la propiedad 'defaultEncoding' en el complemento s3sync del marco Serverless

Instalé el complemento siguiendo el comando en serverless 2.53.1.

 npm install --save-dev serverless-s3-sync

Después de instalar, importé el complemento como este en serverless.yml

 plugins: - serverless-plugin-common-excludes - serverless-plugin-include-dependencies - serverless-python-requirements - serverless-s3-sync

Pero (implementación sin servidor) está dando el siguiente error. También se adjunta captura de pantalla del error. (Este error solo ocurre cuando importo este complemento de serverless-s3-sync en el archivo serverless.yml, otros complementos funcionan bien).

ERROR DE DETALLES:

TypeError: no se puede leer la propiedad 'defaultEncoding' de undefined en _write (node:internal/streams/writable:291:24) en WriteStream.Writable.write (node:internal/streams/writable:334:10) en NodejsStreamOutputAdapter.ondata (C :\serverless_v2\node_modules\readable-stream\lib_stream_readable.js:619:20) en NodejsStreamOutputAdapter.emit (nodo:eventos:394:28)

Aquí hay un error completo:

ingrese la descripción de la imagen aquí

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

0

Recibí este mensaje de error dos veces de Serverless Framework. El mensaje de error no es descriptivo de la causa raíz. La forma en que pude resolverlo fue:

  • Elimine los dos directorios llamados (1) node_modules y (2) .serverless
  • Vuelva a instalar las dependencias usando serverless en lugar de npm, por ejemplo, serverless serverless plugin install -n serverless-s3-sync

Ahora podría implementar el proyecto nuevamente. Pero el mensaje de error es engañoso y debe considerarse un error en sí mismo, ya que el mensaje de error es una fuente de dolorosa confusión.

over 4 years ago · Santiago Trujillo Denunciar

0

Después de mucho investigar, aislé la causa de tener dos versiones diferentes de graceful-fs en las subdependencias del nodo resuelto.

En mi caso, estoy usando el complemento serverless-python-requirements , no serverless-s3-sync , pero el error es el mismo. Ambos complementos enumeran graceful-fs como una dependencia.

Puede ver en la yarn list que hay dos versiones diferentes de graceful-fs instaladas:

 % yarn list ├─ fs-extra@9.1.0 │ ├─ at-least-node@^1.0.0 │ ├─ graceful-fs@^4.2.0 │ ├─ jsonfile@^6.0.1 │ └─ universalify@^2.0.0 … ├─ graceful-fs@4.2.2 ← version used by fs-extra, required by jsonfile … ├─ jsonfile@6.1.0 │ ├─ graceful-fs@^4.1.6 │ ├─ graceful-fs@4.1.15 ← version used by jsonfile │ └─ universalify@^2.0.0 …

Parece que los objetos de flujo creados por una versión de esta biblioteca no son consumibles por la otra versión.

Con yarn resolví esto colocando graceful-fs en la última versión agregando esto a mi archivo package.json :

 "resolutions": { "**/graceful-fs": "4.2.8" }

Para npm , debería ser posible lograr lo mismo usando npm-force-solutions , pero parece que la sintaxis es ligeramente diferente (no he probado esto):

 "resolutions": { "graceful-fs": "4.2.8" }

Eliminar el archivo de bloqueo y la carpeta node_modules y reinstalarlos podría resolver el problema, pero dado el dolor que esto ha causado, estaba más feliz de anclar la versión en package.json .

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