51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
/**
|
|
* Metro configuration for React Native
|
|
* https://github.com/facebook/react-native
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
const path = require("path");
|
|
|
|
const exclusionList = (() => {
|
|
try {
|
|
return require("metro-config/src/defaults/exclusionList");
|
|
} catch (_) {
|
|
// `blacklist` was renamed to `exclusionList` in 0.60
|
|
return require("metro-config/src/defaults/blacklist");
|
|
}
|
|
})();
|
|
|
|
const blockList = exclusionList([
|
|
/node_modules\/.*\/node_modules\/react-native\/.*/,
|
|
|
|
// This stops "react-native run-windows" from causing the metro server to
|
|
// crash if its already running
|
|
new RegExp(`${path.join(__dirname, "windows").replace(/[/\\]+/g, "/")}.*`),
|
|
|
|
// Workaround for `EPERM: operation not permitted, lstat '~\midl-MIDLRT-cl.read.1.tlog'`
|
|
/.*\.tlog/,
|
|
|
|
// Prevent Metro from watching temporary files generated by Visual Studio
|
|
// otherwise it may crash when they are removed when closing a project.
|
|
/.*\/.vs\/.*/,
|
|
|
|
// Workaround for `EBUSY: resource busy or locked, open '~\msbuild.ProjectImports.zip'`
|
|
/.*\.ProjectImports\.zip/,
|
|
]);
|
|
|
|
module.exports = {
|
|
resolver: {
|
|
blacklistRE: blockList,
|
|
blockList,
|
|
},
|
|
transformer: {
|
|
getTransformOptions: async () => ({
|
|
transform: {
|
|
experimentalImportSupport: false,
|
|
inlineRequires: false,
|
|
},
|
|
}),
|
|
},
|
|
};
|