我想使用react-native-svg-transformer和react-native- obfusing -transformer。但是,当使用合并配置方法配置它时,它可以工作,但有时它会覆盖metro中的react-native-svg-transformer。配置文件和react-native-svg-transformer开始不工作,我该如何解决这个问题。
使用mergeConfig
const { getDefaultConfig, mergeConfig } = require("metro-config");
module.exports = (async () => {
const {
resolver: { sourceExts, assetExts },
} = await getDefaultConfig();
let config2 = {
transformer: {
babelTransformerPath: require.resolve("react-native-svg-transformer"),
},
resolver: {
assetExts: assetExts.filter((ext) => ext !== "svg"),
sourceExts: [...sourceExts, "svg"],
},
};
let config1 = {
transformer: {
babelTransformerPath: require.resolve("./transformer"),
},
};
return mergeConfig(config1, config2);
})();
和我尝试使用自定义转换器文件,但我不确定我写的语法
var svgTransformer = require("react-native-svg-transformer");
module.exports.transform = function ({ src, filename, options }) {
if (filename.endsWith(".svg")) {
return svgTransformer.transform({ src, filename, options });
} else {
//return
return require("./transformer");
}
};
我找到了react-native- obfusming -transformer的替代方法。
obfuscator-io-metro-plugin
。这解决了我问题中的所有复杂问题。查看这些链接
https://www.npmtrends.com/@heroai react-native-obfuscating-transformer-vs-obfuscator-io-metro-plugin-vs-react-native-obfuscating-transformer-clone-vs-react-native-obfuscator-vs-react-native-obscure
https://www.npmjs.com/package/obfuscator-io-metro-plugin