在node-modules/metro/src/lib/polyfills/require.js
我们可以看到
global.__d = define;
// require用的是native require,需要通过bridge进入native层进行文件的加载运行。对于单个bundle,单个文件中已经define了需要加载的模块,所以不需要native require. 对于unbundle+inline require,遇到未加载的module就需要通过bridge进行加载了。
同时可以看到如下代码:
if (DEV) { require.Systrace = { beginEvent: () => {}, endEvent: () => {} }; require.getModules = () => { return modules; }; ```
这个可以对应上React Native官方文档中Performance关于unbundle和inline require的那一段说明。说明这段code只有在dev环境下才可以使用。
网友评论