fix(app): avoid metro exclusionList breakage on windows

This commit is contained in:
Mohamed Boudra
2026-03-12 23:06:36 +07:00
parent 970df6478b
commit 847e1d2c60
+4 -5
View File
@@ -1,6 +1,4 @@
const { getDefaultConfig } = require("expo/metro-config"); const { getDefaultConfig } = require("expo/metro-config");
const exclusionList =
require("@expo/metro/metro-config/defaults/exclusionList").default;
const { resolve } = require("metro-resolver"); const { resolve } = require("metro-resolver");
const fs = require("fs"); const fs = require("fs");
const path = require("path"); const path = require("path");
@@ -21,6 +19,7 @@ const escapedAppSrcRoot = appSrcRoot
.split(path.sep) .split(path.sep)
.map((segment) => segment.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&")) .map((segment) => segment.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"))
.join("[\\\\/]"); .join("[\\\\/]");
const pathSeparatorPattern = "[\\\\/]";
config.resolver.extraNodeModules = { config.resolver.extraNodeModules = {
...(config.resolver.extraNodeModules ?? {}), ...(config.resolver.extraNodeModules ?? {}),
@@ -29,9 +28,9 @@ config.resolver.extraNodeModules = {
"react/jsx-runtime": path.join(appNodeModulesRoot, "react/jsx-runtime"), "react/jsx-runtime": path.join(appNodeModulesRoot, "react/jsx-runtime"),
"react/jsx-dev-runtime": path.join(appNodeModulesRoot, "react/jsx-dev-runtime"), "react/jsx-dev-runtime": path.join(appNodeModulesRoot, "react/jsx-dev-runtime"),
}; };
config.resolver.blockList = exclusionList([ config.resolver.blockList = new RegExp(
new RegExp(`^${escapedAppSrcRoot}[\\\\/].*\\.(test|spec)\\.(ts|tsx)$`), `(^${escapedAppSrcRoot}${pathSeparatorPattern}.*\\.(test|spec)\\.(ts|tsx)$|${pathSeparatorPattern}__tests__${pathSeparatorPattern}.*)$`,
]); );
function isLocalModuleImport(moduleName) { function isLocalModuleImport(moduleName) {
return ( return (