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.

Los iconos principales no se muestran en Angular 12.

Estoy utilizando PrimeNG, PrimeIcons y Angular 12 en el mismo proyecto y tengo un problema.

Cuando abro el proyecto en FireFox, los íconos de Prime no se cargan. En la imagen puedes ver el resultado.

enter image description here

Además, en la consola se muestra un error.

Fuente descargable: rechazada por el sanitizador (font-family: “primeicons”
style:normal weight:400 stretch:100 src index:1)

enter image description here

Estoy utilizando las siguientes versiones:

  • PrimeNG: 12.2.2
  • PrimeIcons: 5.0.0
  • Angular: 12.2.8

He leído los problemas cerrados en la biblioteca y veo que podría ser un problema de Webpack. A continuación, voy a pegar el código de Webpack:

const singleSpaAngularWebpack = require('single-spa-angular/lib/webpack').default

module.exports = (angularWebpackConfig, options) => {
  const singleSpaWebpackConfig = singleSpaAngularWebpack(angularWebpackConfig, options);

  singleSpaWebpackConfig.module.rules.push(
    {
      test: /\.(png|jpg|jpeg|gif)$/i,
      type: 'asset/inline',
    },
    {
      test: /\.(svg)$/i,
      type: 'asset/source',
    }
  );

  singleSpaWebpackConfig.externals = [
    /^@example\/*/,
    /^single-spa$/,

    /^rxjs$/,
    /^rxjs\/operators$/,

    /^zone\.js$/,

    /^i18next$/,
  ];

  return singleSpaWebpackConfig
}

Los problemas son:

  • https://github.com/primefaces/primeicons/issues/145
  • https://github.com/primefaces/primeicons/issues/222

He intentado las respuestas de los problemas pero aún no funciona. ¿Alguien puede ayudarme?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Si está teniendo problemas con PrimeNG y PrimeIcons que no se cargan en su proyecto Angular 12, aquí hay algunas cosas que puede probar:

    Verificar las versiones

    Asegúrese de estar utilizando las versiones correctas de PrimeNG y PrimeIcons. Al momento de escribir esto, las últimas versiones son:

    • PrimeNG: 12.2.2
    • PrimeIcons: 5.0.0

    Si sus versiones están desactualizadas, podrían causar problemas.

    Verificar la consola en busca de errores

    Si PrimeNG y PrimeIcons no se cargan, es probable que haya errores en la consola. Verifique la consola para ver si hay mensajes de error relacionados con PrimeNG o PrimeIcons.

    Un mensaje de error común es:

    downloadable font: rejected by sanitizer (font-family: "primeicons"
    style:normal weight:400 stretch:100 src index:1)
    

    Si ve este mensaje de error, podría indicar un problema con las fuentes que no se cargan correctamente.

    Verifique la configuración de Webpack

    Hay problemas conocidos con PrimeIcons y Webpack. Si está utilizando Webpack en su proyecto, verifique su configuración de Webpack.

    Si está utilizando Single-SPA, asegúrese de estar utilizando la configuración correcta. Aquí hay un ejemplo de una configuración de Webpack utilizando Single-SPA:

    const singleSpaAngularWebpack = require('single-spa-angular/lib/webpack');
    
    module.exports = (angularWebpackConfig, options) => {
      const singleSpaWebpackConfig = singleSpaAngularWebpack(angularWebpackConfig, options);
    
      singleSpaWebpackConfig.module.rules.push(
        {
          test: /\.(png|jpg|jpeg|gif)$/i,
          type: 'asset/inline',
        },
        {
          test: /\.(svg)$/i,
          type: 'asset/source',
        }
      );
    
      singleSpaWebpackConfig.externals = [
        /^@example\/*/,
        /^single-spa$/,
    
        /^rxjs$/,
        /^rxjs\/operators$/,
    
        /^zone\.js$/,
    
        /^i18next$/,
      ];
    
      return singleSpaWebpackConfig
    }
    

    Prueba las soluciones sugeridas

    Hay varias soluciones sugeridas en los problemas a los que se hizo referencia. Aquí hay algunas para probar:

    • Agregue lo siguiente a su archivo app.module.ts:
      import { HttpClientModule } from '@angular/common/http';
      import { DomSanitizer } from '@angular/platform-browser';
      import { MatIconRegistry } from '@angular/material/icon';
      
      constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {
       iconRegistry.setDefaultFontSetClass('material-icons-round');
       iconRegistry.addSvgIconSet(sanitizer.bypassSecurityTrustResourceUrl('./assets/icons/mdi.svg'));
      }
      
    • Instale un paquete llamado “html-loader” y luego modifique su configuración de Webpack:
      {
      test: /\.(eot|gif|otf|png|svg|ttf|woff2?)$/,
      loader: 'file-loader',
      options: {
        name: '[name].[ext]',
        limit: 10000,
      },
      },
      {
      test: /\.html$/,
      loader: 'html-loader',
      },
      
    • Asegúrese de que estén instalados los siguientes paquetes:
      npm install --save-dev raw-loader
      npm install --save-dev file-loader
      npm install --save-dev html-loader
      

    Conclusión

    Si todavía tiene problemas con la carga de PrimeNG y PrimeIcons, se requiere una solución adicional. Sin embargo, los pasos descritos en esta guía deberían ayudarlo a reducir el problema y tomar medidas para solucionarlo.

Comments are closed.