Expo SDK v40.0中使用react原生svg转换器导入字体的问题



我最近开始开发React Native/Expo项目,一直在使用自定义字体和Expo图标,直到我更改了metro.config.js设置,允许将SVG文件作为React Native组件导入。

SVG现在工作正常,但自定义字体不再被识别,我收到错误:

"Unrecognized font family "Maquette400" "

我当前的城域网配置设置如下:

const { getDefaultConfig } = require('@expo/metro-config');
const {
resolver: { sourceExts, assetExts },
} = getDefaultConfig(__dirname);
module.exports = {
transformer: {
assetPlugins: ['expo-asset/tools/hashAssetFiles'],
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
babelTransformerPath: require.resolve('react-native-svg-transformer'),
},
resolver: {
assetExts: assetExts.filter((ext) => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'],
},
};

这些是我在设置SVG转换器之前的设置

module.exports = {
transformer: {
assetPlugins: ['expo-asset/tools/hashAssetFiles'],
},
};

根据我所做的研究,在使用SVG transformer和Expo SDK 40时,这似乎是一个已知的问题,因为我遇到过不同的开发人员也遇到了同样的问题,并以不同的方式解决了它,尽管他们尝试的方法都没有解决我的问题。

如果有人有过这样的冲突或为React Native/Expo项目设置metro.config.js的经验,我们将不胜感激!

这里是反应本地svg转换器及其设置说明的链接

SVG变压器与SASS/SCSS 冲突

SVG转换器使用SDK 40 破坏字体/图标

SVG转换器与SDK 40 冲突的Git问题

如果您仍然需要解决方案,请使用以下方法:https://github.com/gregberge/svgr无需自定义城域网配置

最新更新