Problema de compilación de activos en la aplicación de Phoenix en producción por GrapesJS
Pregunta
Estamos usando GrapesJS para permitir que los usuarios diseñen algunas páginas estáticas en nuestra versión de aplicación de producción con Phoenix. Estamos usando brunch para instalar y desplegar nuestros recursos. Nuestro sitio de producción está teniendo un uso alto de renderizado de plantillas en el lado del servidor por razones de rendimiento. GrapesJS funciona bien localmente, pero en producción hay un error que hace que todo nuestro renderizado del lado del servidor se caiga. Aquí está el error que nos está apareciendo:
Uncaught ReferenceError: f no está definido que proviene de f.exports=o como se ve en el código minificado a continuación:
'''javascript {s.delay(t,arguments,n)}),this},resume:function(){return s.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(s.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" no está soportado por este método"); return new h(this,{objectMode:"nodebuffer"!==this._outputType},e)}},f.exports=o}).call(t,n(2). Buffer)},función(e,t,n)
Nuestro archivo **package.json** se ve así:
'''javascript
{
"repositorio": {},
"licencia": "MIT",
"guiones": {
"desplegar": "producción de brunch",
"reloj": "reloj de brunch --stdin"
},
"dependencias": {
"Phoenix": "Archivo:.. /deps/phoenix",
"phoenix_html": "archivo:.. /deps/phoenix_html",
"grapesjs": "~> 0.14.20",
"grapesjs-preset-webpage": "~> 0.1.10",
"grapesjs-plugin-filestack": "~> 0.1.1",
"toastr": "~> 2.1.1",
"uvas-lory-slider": "~> 0.1.5",
"grapesjs-tabs": "~> 0.1.2"
},
"devDependencies": {
"Babel-brunch": "6.1.1",
"brunch": "2.10.9",
"Clean-CSS-brunch": "2.10.0",
"Feo-JS-brunch": "2.10.0"
}
}
Nuestro archivo brunch-config.js: '''javascript El resto de la configuración del brunch ya está aquí NPM: { habilitado: verdadero whitelist: ["grapesjs", "grapesjs-preset-webpage", "grapesjs-plugin-filestack", "toastr"], Estilos: { grapesjs: ["dist/css/grapes.min.css"], "grapesjs-preset-webpager": ["dist/grapesjs-preset-webpage.min.css"], "grapesjs-plugin-filestack": ["dist/grapesjs-plugin-filestack.css"], Toastr: ["Construir/toastr.css"] }, globals: { uvas: 'uvas', "grapesjs-plugin-filestack": 'grapesjs-plugin-filestack', "grapesjs-preset-webpage": 'grapesjs-preset-webpage', Toastr: 'Toastr', "uvas-lory-slider": "uvasjs-lory-slider", "uvas-tabs": "uvasjs-tabs"
}
}
Nuestro archivo **app.js**:
'''javascript
importar "phoenix_html"
importación "grapesjs"
importar "grapesjs-plugin-filestack"
importar "grapesjs-preset-webpage"
importación "toastr"
importa "uvasjs-lory-slider"
importar "grapesjs-tabs"
Phoenix Channels para renderizado en servidor y funciones en tiempo real
Eliminar GrapesJS soluciona todos los problemas que tenemos con el renderizado del lado del servidor y los canales Phoenix en producción. Por favor, háganme saber si hay algo que deba hacer de forma diferente o si necesito más información.
Respuestas (3)
No puedes usar SSR en GrapesJS
@artf No estamos renderizando GrapesJS en el lado del servidor. Se compila con asset pipeline donde se rompe y el renderizado del otro servidor también se cae.
Este hilo se ha bloqueado automáticamente porque no ha habido actividad reciente desde que se cerró. Por favor, abre un nuevo problema para bugs relacionados.
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #1893
[PREGUNTA] Por definición, todos los bloques tienen que tener el mismo estilo
Estamos usando blockManager, como puedes ver en el ejemplo publicado en codesandbox, siguiendo la documentación relacionada con el renderiz...
Issue #910
[Pregunta]: ¿estimación de la complejidad para soportar páginas HTML existentes sin una estructura CSS predefinida?
Tengo una gran cantidad de páginas web estáticas, algunas que se desarrollaron hace bastante tiempo (usando Bootstrap, etc.) y otras que se...
Issue #1285
[Preguntas]: ¿Qué tan adecuados son los grapeJs para páginas web personalizadas para cada usuario en una aplicación web?
Gracias por una herramienta tan increíble. Busco una biblioteca que pueda soportar a mi usuario con páginas web personalizadas y personaliz...
Issue #2011
Construcción de componentes gjs
Hola a todos, Estoy usando el plugin grapesjs-webpage-preset y me gustaría combinar mi gjs-html con mi gjs-css para que todos los estilos e...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.