扩展ReactNative的平台特定扩展?

Joh*_*one 8 javascript webpack react-native

是否有可能挂钩到React-Native的特定于平台的扩展以使用自定义扩展?

在你能发散以同样的方式.ios.js.android.js,有没有办法来定义自定义扩展.xyz.js.(等效于的WebPack的resolve.extensions)

ben*_*zda 2

rn-cli.config.js您可以在项目根目录中覆盖原始捆绑器配置,如下所示:

const { getDefaultConfig } = require('metro-config')

module.exports = (async () => {
  const {
    resolver: {
      sourceExt
    }
  } = await getDefaultConfig()

  return {
    resolver: {
      sourceExts: ['xyz.js', ...sourceExts]
    }
  }
})()
Run Code Online (Sandbox Code Playgroud)

捆绑器文档建议使用该platforms属性而不是sourceExt,但不幸的是,我还没有使用该属性(很可能是因为实际的目标平台仍然是ios或`android,所以 RN 将使用该属性而不是我们的)。

sourceExts扩展的不是平台列表本身,而是扩展列表,这['js', 'json', 'ts', 'tsx']与默认情况类似。如果我们像 那样扩展它['xyz.js', 'js', 'json', 'ts', 'tsx'],RN 将*.xyz.js首先选择 (如果存在)。