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

87
Vistas
El código de funcionamiento ya no funciona después de ser minimizado e implementado

Tengo un código en un trabajador web que funciona perfectamente localmente, pero tan pronto como construyo e implemento (lo que minimiza el código) ya no funciona.

El código no minimizado se ve así:

 const mapSourceCode = (treeNode, mfi, {objectType, types, fileType, templateType}) => { let sourceCodeMap = new Map(); let ownerMap = new Map(); let sourceCodeList = []; let ownerList = []; let mfiMap = new Map(); mfi.forEach(row => mfiMap.set(row.uuid, row)); let sourceCodeObjects = mfi.filter(row => types.includes(row.objectTypeUuid)); if(sourceCodeObjects.length < 1) return {sourceCodeMap, sourceCodeTree: undefined}; try { sourceCodeObjects.forEach(sourceObj => { let owner = findOwner(sourceObj, sourceObj, mfiMap, {...treeNode.data}, objectType);

El código minificado es este:

 i = function(e, t, n) { var c = n.objectType , o = n.types , i = n.fileType , u = n.templateType , l = new Map , s = new Map , f = [] , p = [] , m = new Map; t.forEach((function(e) { return m.set(e.uuid, e) } )); var h = t.filter((function(e) { return o.includes(e.objectTypeUuid) } )); if (h.length < 1) return { sourceCodeMap: l, sourceCodeTree: void 0 }; try { if (h.forEach((function(n) { var r = a(n, n, m, Object(da)({}, e.data), c);

La línea en la que está fallando es {...treeNode.data} en la última línea. El error es ReferenceError: d is not defined

No puedo entender cuál podría ser el problema? Como dije, todo funciona muy bien localmente. Cualquier ayuda es muy apreciada

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Encontré el problema, en caso de que alguien se encuentre con lo mismo. Normalmente, cuando usa trabajadores web, necesita decirle a su constructor (paquete web) que construya/compile trabajadores por separado. Estoy usando la configuración predeterminada de crear-reaccionar-aplicación que no da acceso a esa parte del paquete web. a menos que expulse completamente de create-react-app (que actualmente no estoy listo para hacer)

Estoy usando el gancho de reacción llamado useWorker , donde paso la función que quiero asignar al trabajador.

Cuando su código está optimizado y minimizado, los nombres de las variables se reemplazan con nombres más pequeños (en su mayoría, 1 o 2 letras por lo que he visto). Debido a que no tenía cargadores personalizados para cargar mi código de trabajo, usó variables del ámbito global, asumiendo que tendría acceso. Cuando el código se extrajo a un subproceso separado fuera del subproceso principal, ya no tenía acceso a esas variables y, por lo tanto, no funcionaba.

La solución es

  1. Agregue un cargador (puede expulsar desde create-react-app, o puede haber algunas bibliotecas npm que le darán acceso a esa parte particular del paquete web)
  2. O mi solución fue crear la función en una cadena y crear una función usando el constructor de funciones así

const generateFunction = new Function('treeNode', 'mfi', 'types', 'action', generateFunctionString);

Donde la cadena de función de generación era una cadena como: "return a + b"

Luego pasé esa función a mi enlace useWorker:

const [generatorWorker] = useWorker(generateFunction);

about 4 years ago · Juan Pablo Isaza 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