我想在将React Native代码与Metro bundler捆绑在一起时生成自己的模块ID,这样我就可以捆绑一个基本的Javascript包,以及以后引用它的多个特定于应用程序的包。
Metro捆绑程序会自动为每个模块生成数字ID,这些ID由代码中引用的代码引用。
Metro Bundle构造函数似乎使用fixed ID factory:
this._getModuleId = createModuleIdFactory();
是否可以替换metro.runBuild(opts)
使用的ID工厂而无需修改Metro捆绑包源代码?
答案 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 */
},
...
}
})