es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema de Webpacker/Babel – no se puede cargar Uppy

Tengo una aplicación de Rails bastante nueva y estoy tratando de agregar el cargador de archivos uppy. Desafortunadamente, al requerir el archivo @uppy/core, me aparece el error No se puede asignar a la propiedad de solo lectura 'exports' del objeto '#'.

Este error se debe a que tengo tanto import de Ecma como module.exports = de CommonJS en un solo archivo. He revisado el código fuente de uppy en node_modules y he encontrado que el archivo problemático no tiene import, aunque está presente en una versión recibida por el navegador, justo debajo de 'use_strict':

import _regeneratorRuntime from "@babel/runtime/regenerator";

Esto sugiere que el plugin de babel decidió inyectar la sentencia import en un archivo de CommonJS, lo que hace imposible cargar ese archivo.

Eliminar @babel/plugin-transform-runtime' de babel.config.js resolvió el problema, pero también rompió @babel/preset-env, que espera un objeto global regenerationRuntime.

He creado una aplicación de reproducción mínima aquí: https://github.com/BroiSatse/babel-issue. Es una instalación nueva de Rails, sin cambios en la configuración de js, excepto la dependencia de @uppy/core con una sola ruta hacia una acción ficticia y import Uppy from '@uppy/core' en webpack/packs/application.js.

Cualquier ayuda sería apreciada, ni siquiera sé dónde plantear ese problema en GitHub.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “No se puede asignar a una propiedad de solo lectura ‘exports’ del objeto ‘#‘” al requerir @uppy/core en una aplicación de Rails se debe a tener tanto la importación de Ecma (import) como los module.exports de CommonJS en un solo archivo. El archivo problemático no tiene import, pero la versión recibida por el navegador sí lo tiene bajo "use_strict". Esto sugiere que el plugin de Babel ha inyectado una declaración de import en un archivo de CommonJS, lo que hace imposible cargar ese archivo.

    Eliminar el @babel/plugin-transform-runtime de babel.config.js resuelve el problema, pero también rompe @babel/preset-env que espera un objeto regenerationRuntime global. Se ha creado una aplicación de reproducción mínima en https://github.com/BroiSatse/babel-issue, y se agradecería cualquier ayuda para resolver este problema. No está claro el canal adecuado para plantear este problema en GitHub.

Comments are closed.