在建置時轉換資源
您可以設定您的專案,以使用相容的 Dart 套件在建置時自動轉換資源。
指定資源轉換
#在 pubspec.yaml
檔案中,列出要轉換的資源以及相關聯的轉換器套件。
yaml
flutter:
assets:
- path: assets/logo.svg
transformers:
- package: vector_graphics_compiler
有了這個設定,assets/logo.svg
會在複製到建置輸出時,由 vector_graphics_compiler
套件轉換。此套件會將 SVG 檔案預先編譯成最佳化的二進位檔案,可以使用 vector_graphics
套件顯示,如下所示:
dart
import 'package:vector_graphics/vector_graphics.dart';
const Widget logo = VectorGraphic(
loader: AssetBytesLoader('assets/logo.svg'),
);
將引數傳遞至資源轉換器
#若要將字串參數傳遞給資源轉換器,也請在 pubspec 中指定:
yaml
flutter:
assets:
- path: assets/logo.svg
transformers:
- package: vector_graphics_compiler
args: ['--tessellate', '--font-size=14']
串連資源轉換器
#資源轉換器可以鏈結,並依宣告順序套用。考慮以下使用虛構套件的範例:
yaml
flutter:
assets:
- path: assets/bird.png
transformers:
- package: grayscale_filter
- package: png_optimizer
在這裡,bird.png
會先由 grayscale_filter
套件轉換。然後輸出會由 png_optimizer
套件轉換,最後才被打包到建置的應用程式中。
撰寫資源轉換器套件
#資源轉換器是一個 Dart 命令列應用程式,會使用 dart run
搭配至少兩個引數來調用:--input
,其中包含要轉換的檔案路徑;以及 --output
,轉換器程式碼必須將其輸出寫入的位置。
如果轉換器應用程式以非零的結束代碼完成,建置會失敗並顯示錯誤訊息,說明資源轉換失敗。轉換器程序寫入到 stderr
串流中的任何內容都會包含在錯誤訊息中。
範例
#若要查看使用資源轉換並包含作為轉換器的自訂 Dart 套件的範例 Flutter 專案,請查看 Flutter 範例儲存庫中的 asset_transformers 專案。
除非另有說明,否則本網站上的文件反映的是 Flutter 的最新穩定版本。頁面最後更新於 2024-05-20。 檢視原始碼 或 回報問題。