我在我的 React Native 应用程序中使用了自定义字体,它非常完美。但我需要在其中添加 SVG 文件,因此我使用以下代码添加了 Metro.config.js 文件。之后我遇到错误:无法识别的字体系列'NunitoSemiBold'有人知道该文件metro.config.js如何与自定义字体冲突吗?
module.exports = (async () => {
const {
resolver: { sourceExts, assetExts },
} = await getDefaultConfig();
return {
transformer: {
babelTransformerPath: require.resolve('react-native-svg-transformer'),
},
resolver: {
assetExts: assetExts.filter(ext => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'],
},
};
})();
最佳答案
我遇到了完全相同的问题,并且找到了解决方案。我的猜测是,合并(在这种情况下可能不会合并)从 react-native-svg-transformer
编写的 Metro-config 和来自 expo 的默认配置时存在问题。
无论如何,读完 expo doc page regarding customizing the metro config 后,我刚刚更改了metro配置包默认配置
yarn add -D @expo/metro-config
然后我更新 metro.config.js
:
const { getDefaultConfig } = require('@expo/metro-config');
const {
resolver: { sourceExts, assetExts },
} = getDefaultConfig(__dirname);
module.exports = {
transformer: {
babelTransformerPath: require.resolve('react-native-svg-transformer'),
},
resolver: {
assetExts: assetExts.filter((ext) => ext !== 'svg'),
sourceExts: [...sourceExts, 'svg'],
},
};
享受吧!
关于react-native - 在React Native中添加metro.config.js后自定义字体出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65399459/