どのようにバンドルからスタイルシートを除外すると怠惰な角度でそれらをロードするには?
4204 ワード
我々は、複数のテーマのサポートの例を取ることによってこれを理解しようとします.
のは、主なスタイルとは別に仮定しましょう.CSSファイルには、次の2つのテーマファイルがあります. src/スタイル/テーマ/テーマのライト.CSS SRC/スタイル/テーマ/テーマダーク.CSS 次に、あなたはそれらを
すべては素晴らしい作品ですが、両方のテーマファイルは、アプリケーションのバンドルのすべての時間の一部です.
角を少し変えましょう.BSONからテーマファイルを除外するJSON :
プロジェクトを構築しようとすると、別のファイルが生成され、出力は以下のようになります.
注意
我々はなんとか彼らを束から除外しました、そして、彼らは外部で利用できます.今、質問はこれらのテーマファイルをロードする方法が発生します?
それらをロードする1つの方法は、直接リンクタグでそれらの束を使用することです:
我々は、単に設定によってスタイルシートを除外できることを学んだ
バンドルからスタイルシートを除外する利点は、アプリケーションの最初の負荷時間を改善し、最終的なユーザーエクスペリエンスを向上させるバンドルサイズが小さくなります.
複数のテーマファイル
のは、主なスタイルとは別に仮定しましょう.CSSファイルには、次の2つのテーマファイルがあります.
angular.json
’sオプション"styles": [
"src/styles.css",
"src/styles/themes/theme-light.css",
"src/styles/themes/theme-dark.css"
]
最後に、ユーザーの選択や好みに基づいて特定のテーマの読み込みを処理します.すべては素晴らしい作品ですが、両方のテーマファイルは、アプリケーションのバンドルのすべての時間の一部です.
テーマファイルの除外
角を少し変えましょう.BSONからテーマファイルを除外するJSON :
"styles": [
"src/styles.css",
{
"input": "src/styles/themes/theme-light.css",
"inject": false,
"bundleName": "theme-light"
},
{
"input": "src/styles/themes/theme-dark.css",
"inject": false,
"bundleName": "theme-dark"
}
]
ここで学ぶ2つの新しいオプションinject
: このfalseを設定すると、「入力」パスからbundleName
: 「入力」パスからスタイルシートを含む別々のバンドルが作成されます注意
theme-light.css
and theme-dark.css
怠惰なチャンクファイルの一部です.怠惰なチャンクファイルは、アプリケーションの負荷時間をスピードアップします.怠惰な負荷テーマファイル
我々はなんとか彼らを束から除外しました、そして、彼らは外部で利用できます.今、質問はこれらのテーマファイルをロードする方法が発生します?
それらをロードする1つの方法は、直接リンクタグでそれらの束を使用することです:
<link
rel="stylesheet"
href="theme-dark.css"
media="(prefers-color-scheme: dark)" />
<link
rel="stylesheet"
href="them-light.css"
media="(prefers-color-scheme: light)"
/>
ドキュメントベースのURLを微調整する必要があるでしょうbase
タグを正常にロードします.結論
我々は、単に設定によってスタイルシートを除外できることを学んだ
inject
ワークスペース設定ファイルでfalseです.angular.json
. そして、要求に応じてロードするには、bundleName
オプション.バンドルからスタイルシートを除外する利点は、アプリケーションの最初の負荷時間を改善し、最終的なユーザーエクスペリエンスを向上させるバンドルサイズが小さくなります.
Reference
この問題について(どのようにバンドルからスタイルシートを除外すると怠惰な角度でそれらをロードするには?), 我々は、より多くの情報をここで見つけました https://dev.to/shhdharmen/how-to-exclude-stylesheets-from-the-bundle-and-lazy-load-them-in-angular-3kcfテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol