https://github.com/kristerkari/react-native-svg-transformer 사용
이 패키지에서는 .svg파일이 React Native v0.57 이하에서 지원되지 않는다고 언급 되어 있으므로 .svgxsvg 파일의 확장자를 사용 하십시오.
웹 또는 react-native-web의 경우 https://www.npmjs.com/package/@svgr/webpack을 사용 하십시오.
react-native-svg-urireact-native 버전 0.57 이하를 사용하여 svg 파일을 렌더링하려면 루트 프로젝트에 다음 파일을 추가해야합니다.
참고 : 확장자 svg를 다음으로 변경하십시오.svgx
1 단계 : transformer.js프로젝트의 루트에 파일 추가
const cleanupSvg = require('./cleanup-svg');
const upstreamTransformer = require("metro/src/transformer");
const svgExtensions = ["svgx"]
function fixRenderingBugs(content) {
return "module.exports = `" + content + "`";
}
module.exports.transform = function ({ src, filename, options }) {
if (svgExtensions.some(ext => filename.endsWith("." + ext))) {
return upstreamTransformer.transform({
src: fixRenderingBugs(src),
filename,
options
})
}
return upstreamTransformer.transform({ src, filename, options });
}
2 단계 : rn-cli.config.js프로젝트의 루트에 추가
module.exports = {
getTransformModulePath() {
return require.resolve("./transformer");
},
getSourceExts() {
return [ "svgx"];
}
};
위에서 언급 한 솔루션은 프로덕션 앱에서도 작동합니다 .✅