web-dev-qa-db-fra.com

Inclure les actifs lors de la construction de la bibliothèque angular

Je crée une bibliothèque qui contient une police d'icône personnalisée. Cependant, lorsque je crée ma bibliothèque à l'aide de ng build <library-name> --prod, Le dossier des ressources n'est pas inclus dans la génération, ce qui signifie que les icônes n'apparaissent pas lors de l'utilisation de la génération de production.

J'ai essayé plusieurs solutions comme l'ajout du tableau assets dans angular.json Et la copie du dossier d'actifs dans le dossier dist créé.

J'utilise Angular 8, et la bibliothèque a été créée en utilisant angular-cli.

J'ai essayé d'inclure les polices de deux manières: en utilisant @import url( '../assets/icon_font.css' ); dans l'un des fichiers de style et en ajoutant ../assets/icon_font.css À styleUrls dans l'un des composants qui le nécessitent. (icon_font.css Est le fichier css qui inclut les polices d'icônes)

Voici la disposition de mon répertoire de bibliothèque:

- src
  - lib
    - assets
      - icon_font.css
      - font files
    - component that requires icons
      - style sheet that has @import icon_font.css
    - other components and classes

Je souhaite que le fichier .ttf et les autres fichiers de police du répertoire assets/ Soient disponibles dans le dossier dist exporté.

4
Aivaras Kriksciunas

Comme vous l'avez dit dans votre réponse, il n'était pas possible de forcer le packager à compresser les actifs avec les fichiers de build.

Maintenant, ng-packagr a publié une nouvelle version qui vous permet d'inclure les actifs avec les fichiers de build:

Vous pouvez copier ces actifs en utilisant l'option d'actifs.

{
  "ngPackage": {
    "assets": [
      "CHANGELOG.md",
      "./styles/**/*.theme.scss"
    ],
    "lib": {
      ...
    }
  }
}

Plus d'informations ici: https://github.com/ng-packagr/ng-packagr/blob/master/docs/copy-assets.md

0
German Quinteros