From b0f5f4b8b295522755fe04064d481adab1a7da0b Mon Sep 17 00:00:00 2001 From: Peter Abbondanzo Date: Fri, 6 Sep 2024 11:28:41 -0700 Subject: [PATCH] Load XML files on disk by default (#1348) Summary: Pull Request resolved: https://github.com/facebook/metro/pull/1348 X-link: https://github.com/facebook/react-native/pull/46371 ## Internal Vector drawable image support was added in D59530172 but importing vector drawable asset types was not supported out of the box. It required custom source transformers like the one added in D60021474. This is because Android cannot load vector drawable XML over the network. Vector drawables are compiled by AAPT as part of the build process. Even though Metro can serve XML, it would never load. ## Summary This adds some minor checks in the `AssetSourceResolver` to only attempt loading XML asset types from disk on the Android platform. XML assets like vector drawables are precompiled and cannot be served over the network by Metro. ## Changelog [Android] [Added] - Adds support for importing XML assets as images Differential Revision: D62302929 --- .../src/__tests__/__snapshots__/loadConfig-test.js.snap | 4 ++++ packages/metro-config/src/defaults/defaults.js | 1 + 2 files changed, 5 insertions(+) diff --git a/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap b/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap index 0d182cdcbe..0d8192fa34 100644 --- a/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap +++ b/packages/metro-config/src/__tests__/__snapshots__/loadConfig-test.js.snap @@ -18,6 +18,7 @@ Object { "psd", "svg", "webp", + "xml", "m4v", "mov", "mp4", @@ -201,6 +202,7 @@ Object { "psd", "svg", "webp", + "xml", "m4v", "mov", "mp4", @@ -384,6 +386,7 @@ Object { "psd", "svg", "webp", + "xml", "m4v", "mov", "mp4", @@ -567,6 +570,7 @@ Object { "psd", "svg", "webp", + "xml", "m4v", "mov", "mp4", diff --git a/packages/metro-config/src/defaults/defaults.js b/packages/metro-config/src/defaults/defaults.js index 2eb200d71c..7332a353a9 100644 --- a/packages/metro-config/src/defaults/defaults.js +++ b/packages/metro-config/src/defaults/defaults.js @@ -25,6 +25,7 @@ exports.assetExts = [ 'psd', 'svg', 'webp', + 'xml', // Video formats 'm4v', 'mov',