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

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

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 Report

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 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!