web-dev-qa-db-ja.com

ビルド時にアセットを含めるangularライブラリ

カスタムアイコンフォントを含むライブラリを構築しています。ただし、_ng build <library-name> --prod_を使用してライブラリをビルドすると、assetsフォルダーがビルドに含まれません。つまり、本番ビルドを使用してもアイコンが表示されません。

assets配列を_angular.json_に追加し、assetsフォルダーを作成したdistフォルダーにコピーするなど、複数の解決策を試しました。

Angular 8を使用しており、ライブラリはangular-cliを使用して作成されました。

フォントを2つの方法で含めてみました。スタイルファイルの1つで@import url( '../assets/icon_font.css' );を使用し、それを必要とするコンポーネントの1つでstyleUrlsに_../assets/icon_font.css_を追加しました。 (_icon_font.css_はアイコンフォントを含むcssファイルです)

これが私のライブラリディレクトリのレイアウトです。

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

_assets/_ディレクトリ内の.ttfおよびその他のフォントファイルを、エクスポートされたdistフォルダーで使用できるようにしたいと考えています。

4

あなたの答えで言ったように、パッケージャーにビルドファイルと一緒にアセットをパックさせることはできませんでした。

ng-packagr は、ビルドファイルと共にアセットを含めることができる新しいバージョンをリリースしました:

assetオプションを使用して、これらのアセットをコピーできます。

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

詳細はこちら: https://github.com/ng-packagr/ng-packagr/blob/master/docs/copy-assets.md

0