如何从React Native Project中找出moduleID

时间:2017-02-01 11:34:12

标签: react-native

React-native使用ID替换模块名称。

Original
var _react = require('react');
Final Version
var _react = require(12);

如何找出模块ID?

我希望能够访问使用ID绑定名称的地图。 我不想访问最终的捆绑文件并找出ID。相反,我想使用打包器生成的地图。

1 个答案:

答案 0 :(得分:0)

React Native包含一个负责捆绑和映射的打包程序(React Native Packager)。

在调试模式下运行应用程序时,您有两种选择:

发展模式: http://localhost:8081/index.ios.map?platform=ios&dev=true&minify=true

发布模式: http://localhost:8081/index.ios.map?platform=ios&dev=false&minify=true

很明显,我假设您正在使用端口8081作为您的NPM服务器。

此链接为您提供.JSON文件。 JSON文件包含名为" sections"的属性。每个会话都有一个属性" map"然后是属性"来源"。

JSON示例

{"version":3,"file":"/index.ios.bundle?platform=ios&dev=true&minify=true","sections":[{"offset":{"line":0,"column":0},"map":{"version":3,"sources":["/Users/oximer/Documents/myproject/node_modules/react-native/packager/react-packager/src/Resolver/polyfills/prelude_dev.js"],"names":["global","__DEV__","__BUNDLE_START_TIME__","Date","now"],"mappings":"CAAA,SAAAA,GAaAA,EAAOC,SAAU,EAEjBD,EAAOE,sBAAwBC,KAAKC"}}]}

打包器遍历此JSON文件并生成映射(文件名,数组上的/ position)。它基本上替换了数组上位置所需的字符串。

导致

  

需要(prelude_dev)

取代
  

需要(1)