是否可以在React Native的Metro捆绑器中使用备用ID工厂?

时间:2017-12-01 19:23:54

标签: react-native

我想在将React Native代码与Metro bundler捆绑在一起时生成自己的模块ID,这样我就可以捆绑一个基本的Javascript包,以及以后引用它的多个特定于应用程序的包。

Metro捆绑程序会自动为每个模块生成数字ID,这些ID由代码中引用的代码引用。

Metro Bundle构造函数似乎使用fixed ID factory

this._getModuleId = createModuleIdFactory();

是否可以替换metro.runBuild(opts)使用的ID工厂而无需修改Metro捆绑包源代码?

1 个答案:

答案 0 :(得分:1)

我的拉取请求导入了React Native Metro捆绑包,允许设置自定义ID工厂

https://github.com/facebook/metro/pull/100

使用示例(详见https://github.com/doubledutch/cli/blob/master/packager.js#L29

await metro.runBuild({
  config: {
    createModuleIdFactory() {
      return (path) => /* some ID */
    },
    ...
  }
})