我试图捆绑markdown文件,而不造成太多开销(即不使用第三方依赖关系,手动将它们添加到Xcode和Android中的资产包中)。
我的想法是允许require()通过调整metro.config.js中的城域绑定器设置来包含它们。
/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* @format
*/
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
resolver: {
assetExts: [`md`] // < include md
}
};不幸的是,metro用这里设置的内容替换了给定的默认值数组。
我不想显式地重复默认的资产扩展名列表,该列表列出了20+文件扩展名,特别是因为我想坚持默认设置,否则。见:https://github.com/facebook/metro/blob/master/packages/metro-config/src/defaults/defaults.js。
附加到数组中也不起作用。
使用RN 0.59.3。
我遗漏了什么吗?
发布于 2019-04-03 06:29:39
在这里找到了如何包含默认值的答案:https://stackoverflow.com/a/55118654/844907。
/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* @format
*/
// get defaults assetExts array
const defaultAssetExts = require("metro-config/src/defaults/defaults").assetExts;
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
resolver: {
assetExts: [
...defaultAssetExts, // <- array spreading defaults
'md'
]
}
};发布于 2019-08-24 07:47:14
其他方法是使用与反应-本机svg-变压器相同的语法。
示例
const { getDefaultConfig } = require('metro-config')
module.exports = (async () => {
const {
resolver: { assetExts },
} = await getDefaultConfig()
return {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
resolver: {
assetExts: [...assetExts, 'md'],
},
}
})()https://stackoverflow.com/questions/55484740
复制相似问题