TypeScript使用中最普遍的问题,就是调试React Native应用时缺少sourcemap。现在大部分工作流中,断点被放在通过tsc编译器生成的文件中。为了缓解这个问题,我们可以使用react-native-sm-transformer模块。当使用react-native start启动一个React Native Packager时,可以通过使用-- transforme
可以看到它实际上是通过react-native bundle命令,通过增加参数的形式,输出 index.android.bundle 文件的。 而如果你查阅文档,你会发现react-native命令,还有一个可配置的参数—sourcemap-output,它就是我们需要的。 我这里把关键信息截图出来看着更清晰。 --sourcemap-output命令非常的简单,只需要配置一个输出的文件名就...
翻译改编自 Shaheen Ghiassy的Deep Diving React Native Debugging from medium.com 中文译名: 深入理解 React Native Debugging 译者注: 使用React Native(以下简称RN) Debug更是每天都会用到的技能.最近闲来看看一些原理性的文章,决定先从debug入手,可以更深入了解到框架背后的东西.原作者写这篇文章的时候RN还是0.11...
"--sourcemap-output", enableHermes ? jsPackagerSourceMapFile : jsOutputSourceMapFile, *extraArgs) 就是用来打包生产bundle.js的。 ios打包: npx react-native run-ios --configuration Release 或者直接使用xcode运行build。 在ios中的project.pbxproj有一段代码: /* Begin PBXShellScriptBuildPhase section */...
--sourcemap-sources-root [string]:sourcemap的输出目录(默认要写相对路径)。 --sourcemap-use-absolute-path:启用sourcemap输出目录使用绝对路径。 --assets-dest [string]:bundle中引用的文件目录名称。 --verbose:启用日志。 --reset-cache:删除缓存文件。 --read-global-cache:从全局缓存中获取转换的JS代码。
ReactNative 是由 Facebook 基于 React.js 开发的一套跨平台开发框架。 相信看到这篇文章的人对 ReactNative 已经有过一些了解,这里不作过多赘述。 本文主要基于 ReactNative 打离线包这件事进行详解。 离线包 离线包就是把 ReactNative 和你写的 js文件、图片等资源都打包放入 App ,不需要走网络下载。
sourceMapUrl (string): 源映射的URL匹配,它默认为与包相同的URL,只是将扩展名从.bundle更改为.map。 可用选项 有关配置选项的详细信息,可用参考下面的连接:Configuring Metro URL与 bundle 请求 Assets 为了获取Assets资源,您可以使用require方法来获取一个js文件,服务器将根据特定的require请求返回js文件的路径。当...
evaluateJavaScriptWithSourceMap函数 在React Native源码中没有搜到,在另一个hermes项目(https://github.com/facebook/hermes)中找到了evaluateJavaScriptWithSourceMap函数和evaluateJavaScript函数。 evaluateJavaScript函数对应so的地址0xbb867431 libhermes.so!0x11431 ...
ReactNative 是由 Facebook 基于 React.js 开发的一套跨平台开发框架。相信看到这篇文章的人对 ReactNative 已经有过一些了解,这里不作过多赘述。本文主要基于 ReactNative 打离线包这件事进行详解。 离线包 离线包就是把 ReactNative 和你写的 js文件、图片等资源都打包放入 App ,不需要走网络下载。
启动Server 时会自动在 chrome 打开一个页面,JS 文件就在这个页面执行的,在执行到需要跟 native 通信交互时,会调用到 websocket 进行远程通信,这样就可以在页面上通过 chrome 自带的开发者工具断点调试 JS 了。 3. SourceMap 虽然chrome 上可以调试 JS 了,但这里执行的 JS 是经过编译/打包/压缩后的 JS,与开发...