React Native 打包 js 时如何防止 Node 内存不足

2023-11-21

当使用 ClojureScript 为 React Native 捆绑 js 时,出现以下错误。捆绑 javascript 包时,节点似乎耗尽了内存。使用 ClojureScript 时更有可能发生这种情况,因为生成的 js 文件通常比普通 js 文件大。

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

<--- Last few GCs --->

  152689 ms: Mark-sweep 1369.3 (1434.8) -> 1362.8 (1434.8) MB, 2794.5 / 0 ms [allocation failure] [GC in old space requested].
  155498 ms: Mark-sweep 1362.8 (1434.8) -> 1362.9 (1434.8) MB, 2808.4 / 0 ms [allocation failure] [GC in old space requested].
  158508 ms: Mark-sweep 1362.9 (1434.8) -> 1362.8 (1434.8) MB, 3010.8 / 0 ms [last resort gc].
  161189 ms: Mark-sweep 1362.8 (1434.8) -> 1362.8 (1434.8) MB, 2680.5 / 0 ms [last resort gc].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0xd4b9fdc9e59 <JS Object>
    1: visitQueue [/Users/myproj/node_modules/babel-traverse/lib/context.js:~130] [pc=0x3e89a3f7bd28] (this=0x24a5ec659101 <a TraversalContext with map 0x157972399611>,queue=0x24a5ec659149 <JS Array[1]>)
    2: node [/Users/myproj/node_modules/babel-traverse/lib/index.js:~150] [pc=0x3e89a3e4f23a] (this=0x387a6b7f4301 <JS Function traverse (SharedFunction...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

<--- Last few GCs --->

  238422 ms: Mark-sweep 1364.8 (1434.8) -> 1364.8 (1434.8) MB, 3377.7 / 0 ms [allocation failure] [GC in old space requested].
  241834 ms: Mark-sweep 1364.8 (1434.8) -> 1364.8 (1434.8) MB, 3412.3 / 0 ms [allocation failure] [GC in old space requested].
  245313 ms: Mark-sweep 1364.8 (1434.8) -> 1364.8 (1434.8) MB, 3478.7 / 0 ms [last resort gc].
  248639 ms: Mark-sweep 1364.8 (1434.8) -> 1364.8 (1434.8) MB, 3326.4 / 0 ms [last resort gc].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x266dabec9e59 <JS Object>
    1: new constructor(aka NodePath) [/Users/myproj/node_modules/babel-traverse/lib/path/index.js:~61] [pc=0x108980041705] (this=0x1cedf9a7ef69 <a NodePath with map 0x3182f379cf21>,hub=0x266dabe04189 <undefined>,parent=0x3d43337ab49 <a Node with map 0x3182f3798489>)
    3: get [/Users/myproj/node_modules/babel-traverse/lib/path/index.js:~87] [pc=0x10898...

[node-haste] Encountered an error while persisting cache:
> Error: Uncaught error in the transformer worker: /Users/myproj/node_modules/react-native/packager/transformer.js
>     at _transform.then.catch.error (/Users/myproj/node_modules/react-native/packager/react-packager/src/JSTransformer/index.js:99:31)
>     at tryCallOne (/Users/myproj/node_modules/promise/lib/core.js:37:12)
>     at /Users/myproj/node_modules/promise/lib/core.js:123:15
>     at flush (/Users/myproj/node_modules/asap/raw.js:50:29)
>     at _combinedTickCallback (internal/process/next_tick.js:67:7)
>     at process._tickCallback (internal/process/next_tick.js:98:9)
/Users/myproj/node_modules/promise/lib/done.js:10
      throw err;
      ^

Error: Uncaught error in the transformer worker: /Users/myproj/node_modules/react-native/packager/transformer.js
    at _transform.then.catch.error (/Users/myproj/node_modules/react-native/packager/react-packager/src/JSTransformer/index.js:99:31)
    at tryCallOne (/Users/myproj/node_modules/promise/lib/core.js:37:12)
    at /Users/myproj/node_modules/promise/lib/core.js:123:15
    at flush (/Users/myproj/node_modules/asap/raw.js:50:29)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
Command /bin/sh failed with exit code 1

iOS 的解决方案是编辑以下文件:ios/YourProjectName.xcodeproj/project.pbxproj并更改以下行(~600)

shellScript = "export NODE_BINARY=node\n../node_modules/react-native/packager/react-native-xcode.sh";

to

shellScript = "export NODE_BINARY='node --max_old_space_size=4092'\n../node_modules/react-native/packager/react-native-xcode.sh";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 打包 js 时如何防止 Node 内存不足 的相关文章

  • Firebase Web 与 iOS 和 Android 版本的 React Native 项目

    我是应用程序开发新手 这让我很困惑 我有一个用react native 创建的项目 我希望它可用于android 和iOS 我看过一些关于如何为 React Native 后端创建 Firebase 数据库的教程 其中一些在构建应用程序时选
  • 如何从 Java 中的 Native Android Activity 打开 React Native 应用程序的特定组件?

    Alert 这个问题基本上是关于一种方法 所以不会有任何可用的笔或代码可以共享 I was doing a POC where integrating an RN app into an Android App I did successf
  • 使用react-native测量音频的响度

    我正在创建一个应用程序 Android 来使用本机反应录制手机中的语音 一项要求是实时测量声音的响度并基于它制作动画 我尝试使用react native audio库 但问题是响度监控仅在IOS中支持 我检查了世博会音频库 但找不到方法 有
  • 从父组件触发子组件内部的函数

    如何从父组件触发子组件内部的函数 以与抽屉导航相同的风格进行操作 他们这样做 this props navigation toggleDrawer 来自父母 我怎样才能做同样的事情 如果我正确理解你的问题 我认为你有点混淆了 您显示的示例是
  • 如何将变量传递给函数引用?

    在 React Native 中 当你有需要在渲染时运行并且必须传递变量的函数时 大多数人建议应该使用 onPress gt this functionName variable 然而 当处理大型列表和复杂组件时 您必须优化代码 为每个 r
  • Android 上的 React Native:无法运行程序“node”:错误=2,没有这样的文件或目录

    编辑 我不确定我采取了哪些步骤来解决此问题 并且不再看到此错误消息 因此我无法测试下面的解决方案 请单独尝试 因为不同的答案似乎适用于不同的人 iOS 版本工作正常 但在我的 Mac 上运行 Android Studio 时出现以下 Gra
  • 如何在 React Native 中做最后一个子选择器?

    我使用Scrollview 里面有3个视图 我在它们之间留了一个间隙 例如 marginRight 5 但我不希望在最后一个视图中出现这种间隙 这就是为什么我需要这种东西 你能帮助我吗 应用这个你就可以实现你在寻找什么 const styl
  • 如何向 React 中的 onChange 函数传递附加参数

    所以 我遇到了这个问题 我这里有这种类型的元素 显然在更改输入时有事件 是否可以像这样传递参数并访问事件 如果是这样 我该怎么办 this function accepts two other params index stringValu
  • 纯组件在没有变化时渲染?

    我有一个像这样的纯组件 interface Props checkBoxTitleStyle any checkBoxBackgroundColor any onPressCheckBox id isChecked selectedArra
  • 在 React 中存储数据

    我实际上是 React 新手 无法选择在这种情况下存储数据的最佳方式是什么 我有一个包含一些输入的表单 我需要在提交时对这些输入中的所有数据执行一些操作 所有输入都存储在一个组件中 所以 我只需要在提交时获取所有数据 现在我正在尝试选择存储
  • React Native:约束 Animated.Value

    我正在制作一个 React Native 应用程序 场景是这样的 我希望用户能够平移视图 但不完全按照他想要的方式 我想约束视图被拖动时可以移动的距离由用户 我已经阅读了两者的文档PanResponder and AnimatedAPI 多
  • React Native Tab 视图的高度始终等于最高选项卡的高度

    介绍 我有一个 FlatList 它在页脚中呈现一个选项卡视图 此选项卡视图允许用户在一个 FlatList 或另一个 FlatList 之间切换 所以 最后这些是同级 FlatList Problem 第一个 FlatList A 的高度
  • 用笑话测试实现react-leaflet映射的react组件的问题

    当我尝试测试实现react leaflet库的react组件时 遇到以下问题 C digital booking ui node modules react leaflet lib index js 1 Object
  • React-Native 中的导航抽屉

    我是反应原生的新手 不介意我问一个基本问题 我想知道 实现抽屉式导航的分步过程是什么 推荐链接这个链接 https github com react native community react native side menu usage
  • 使用 React Native 在手机上搜索音频文件

    我正在使用 React Native 开发音乐应用程序 但我一直在努力找出搜索和播放已保存在客户端手机上的音频文件的最佳方法 我只是不确定解决这个问题的最佳模块 库是什么 或者 iOS Android 操作系统是否允许这种类型的用户文件访问
  • 我在 Facebook 上的“access_token”是“不正确的值”

    我正在使用 django rest auth 它是 Django all auth 的 API 扩展 我正在构建一个可以使用 Facebook 令牌注册 登录的移动应用程序 网址 http localhost 8000 rest auth
  • 无法读取反应导航中未定义的属性“导航”

    我用过import StackNavigator from react navigation 在我的 Router js 中 import StackNavigator from react navigation import LoginF
  • 将 babel polyfill 添加到 React Native 项目

    我在 Android 上遇到问题 得到这个错误 undefined 不是一个函数 评估 iterator2typeof Symbol function Symbol iterator iterator 我觉得和for of es6的使用有关
  • 在 React Native (iOS) 中支持动态类型

    有谁知道如何在 React Native 中实现对动态类型的支持 理想情况下 我们希望监听何时有人更改了系统字体的大小 并执行某种类型的回调 或者更好的是 阻止在某些组件上实现字体缩放 好吧 事实证明你可以申请 allowFontScali
  • react-native-camera (android): takePictureAsync() 抛出错误

    从react native camera调用takePictureAsync 后 我收到此错误 framesToPop 1 nativeStackAndroid userInfo null message Preview is paused

随机推荐