Issue #2428💬 RespondidoAbierto el 25 de noviembre de 2019por aarangaraReacciones 0

La fuente no carga al usarla con webpack - grapesjs intenta cargar fuentes con ruta relativa

Respuesta rápidapor artf

es decir, el archivo html está en /public/editor/demo.html y los archivos que genera webpack están localizados como /public/js/ (archivos bundle.js y fuentes), así que si copio archivos de fuente a /public/editor/fonts/ funciona bien. Bueno, creo que por esta frase queda bastante claro que el problema es dónde coloca...

Lee la respuesta completa abajo ↓

Pregunta

Estoy intentando cargar el editor de grapesjs en un archivo html sencillo y no carga los iconos propios de grapesjs ni los iconos de fontawesome.

Ahora, he investigado estos 2 problemas #2320 y #1474, pero no me ayudaron a resolver mi problema, por eso lo planteo.

A continuación está mi script de origen ('demo.js') que luego utiliza webpack para empaquetarlo como ''bundle.js''

importar 'grapesjs/dist/css/grapes.min.css';
importar 'grapesjs-preset-webpage/dist/grapesjs-preset-webpage.min.css';
importar uvas de 'uvas';
importar gjspresetwebpage desde 'grapesjs-preset-webpage';

document.addEventListener("DOMContentLoaded", function (event) {
	const editor = grapesjs.init({
		Contenedor: '#gjs',
		fromElement: cierto,
		Altura: '300px',
		Ancho: 'Auto',
		storageManager: false,
		Paneles: {predeterminados: []},
		Plugins: ['GJS-preset-webpage'],
		pluginsOpts: {
			'gjs-preset-webpage': {
			}
		},
	});
});

Mi configuración de webpack es la siguiente:

const path = require('path');
module.exports = {
	entrada: {
		paquete: './assets/js/demo.js',
	},
	modo: 'desarrollo',
	devtool: 'source-map',
	salida: {
		camino: camino.unirse(__dirname, '.. /public/js'),
		Nombre del archivo: '[nombre].js',
	},
	módulo: {
		Reglas: [
			{
				Prueba: /\. (js)$/,
				excluir: /node_modules/,
				Cargador: 'Babel-cargador'
			},
			{
				Prueba: /\.css$/i,
				Uso: ['Cargador de estilo', 'Cargador CSS']
			},
			{
				Prueba: /\. (woff|woff2|eot|ttf|svg)(\?. *$|$)/,
				Cargador: 'Cargador de archivos',
				Opciones: {
					Nombre: '[Nombre]. [ext]'
				},
			}
		]
	},
	resolver: {
		Extensiones: ['*', '.js']
	},
};

Veo que cuando ejecuto webpack para agrupar todo, se crea el ''bundle.js'' y también se generan los archivos de fuente '.woff, .svg' tanto para los iconos principales como los de fontawesome, etc.

Pero cuando intento usarlos en mi html, siempre me devuelve un error al intentar cargar iconos: ''fuente descargable: descarga fallida......... Fuente: http://localhost/editor/fonts/fontawesome-webfont.woff2''

Una cosa interesante que noté es que las fuentes cargan bien si las copio y pego en el mismo directorio donde está mi editor HTML para

Es decir, el archivo HTML está en '''public/editor/demo.html'' y los archivos que genera webpack están localizados como ''/public/js/ (archivos bundle.js y de fuente)'', así que si copio archivos de fuente a '''public/editor/fonts/'' funciona bien.

Así que me parece que grapesjs está intentando cargar los archivos de fuentes en una ubicación relativa a mi archivo ''demo.html''', es decir, '''/public/editor/fonts/''.

Si importa o alguien necesita mirar, aquí está mi código html para el editor:

....
<script type="text/javascript" src="/js/edoc.js"></script>
<div style="margin-top: 200px;" class="panel__top">
	<div class="panel__basic-actions"></div>
</div>
<div id="gjs">
	<strong>Texto de ejemplo</strong>
</div>
<style>
	<!-- estilos de la página de Comienzo -->
</style>
....

P.D. Disculpas y ignora si no sigo las convenciones o buenas prácticas para hormigas, etc., ya que soy nuevo en webpack, npm, etc. También puede que esté cometiendo un error muy trivial, pero ya he pasado horas intentando resolver este problema

Respuestas (1)

artf29 de noviembre de 2019

es decir, el archivo html está en /public/editor/demo.html y los archivos que genera webpack están localizados como /public/js/ (archivos bundle.js y fuentes), así que si copio archivos de fuente a /public/editor/fonts/ funciona bien.

Bueno, creo que por esta frase queda bastante claro que el problema es dónde coloca webpack las fuentes (probablemente solo necesites configurar correctamente 'file-loader').

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

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 →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.