【问题标题】:JavaScript heap out of memory when using @babel/standalone使用 @babel/standalone 时 JavaScript 堆内存不足
【发布时间】:2019-01-10 16:40:59
【问题描述】:

我有使用 create-react-app 创建的 react 应用程序。我想获取用户代码并对其进行评估以呈现它。

这是我迄今为止尝试过的。

import React, { Component } from 'react';
import './App.css';
import { transform } from "@babel/standalone";

const code =  transform("<span>Hello world</span>", {
  presets: ["@babel/react", "@babel/env"],
}).code

class App extends Component {
  render() {
    return (
      <div className="App">
       <div>
         {eval(code)}
       </div>
      </div>
    );
  }
}

此代码在我的终端中出现以下错误。

致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足

如果这很重要,我在 Mac 上。

【问题讨论】:

  • 正如我提到的,目标是获取用户输入的代码并呈现它,
  • 对,应该仔细阅读,不好意思
  • 你试过增加nodejs的可用内存吗?
  • 是的,刚刚增加到 8gb,没有运气

标签: javascript reactjs babeljs


【解决方案1】:

我在一个大型 React 项目中遇到了同样的错误,为了修复它,我让我的大型导入更加具体。

例如:
来自-

import {SelectBox} from 'somelibrary-react';

到-

import SelectBox from 'somelibrary-react/select-box';

您可以在这里找到更多解释: bundle size

【讨论】:

    猜你喜欢
    • 2018-02-10
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2019-09-21
    • 2019-03-04
    • 2017-02-27
    • 2017-10-10
    相关资源
    最近更新 更多