【问题标题】:`react-scripts build' is using 1+ GB of RAM`react-scripts build' 正在使用 1+ GB 的 RAM
【发布时间】:2019-09-02 20:35:04
【问题描述】:

我有一个相对简单的 React 15 网站。它只有几个不同的页面,主要是文字和一些图片。但是,当我使用react-scripts build 构建项目以进行生产部署时,我发现节点进程的最高使用内存约为 1.25 GB。在我的工作站上构建时这不是问题,但在我的生产服务器上却是一个问题,我目前只有 1 GB 可用的 RAM。大多数情况下,服务器会因为内存不足而终止我的构建。

所以看来我的选择是花更多的钱在服务器上升级到 2GB 的 RAM,或者想办法减少内存使用量。我想避免支付更多费用,因为通常我不会使用超过 200 MB 的 RAM 来运行我的应用程序,而且它只是在构建使用大量 RAM 的应用程序。

我似乎有些人建议在构建中添加--max-old-space-size= 标志,但这似乎没有任何作用。也就是说,我已经在我的 package.json 中尝试过:

"build": "react-scripts --max-old-space-size=512 build"

但它仍会占用 1+ GB 的 RAM。我通过npm run build 开始构建,并将--max-old-space-size 标志添加到npm 命令似乎没有任何作用。

我能做些什么来防止react-scripts 构建过程使用这么多内存吗?

【问题讨论】:

  • 你找到解决这个问题的方法了吗?
  • 不,我找不到解决方案。我刚刚增加了 VM 上的 RAM,然后继续做一些事情。
  • 我还假设使用--max-old-space-size 会修复它,但它没有。我看到的唯一选择是走通常的 CI 路线并在单独的机器上构建它并将构建的文件推送到实例
  • 是否有可能在构建生产版本时生成源映射?当我意外启用源映射生成时,我遇到了这种情况(它需要大约 1.4GB)
  • 尝试使用 Webpack 包分析器来检查你的 npm 包可能是你安装的太多太重了

标签: reactjs build react-scripts


【解决方案1】:

similar question的回答:

您可以将 --max_old_space_size 用于节点进程而不是 react-script。

例如node --max_old_space_size=512 node_modules/.bin/react-scripts build

【讨论】:

    【解决方案2】:
    1. 您可以在生产服务器上添加swap 空间。请参考this
    2. 您在生产服务器上使用什么node 版本? 尝试使用nvm or other ways 升级您的node 版本。我认为这对你来说是个问题。

    【讨论】:

      【解决方案3】:

      我遇到过类似的问题,但就我而言,它在我更新时帮助了我 CRA 自带的 react-scripts 包(create-react-app)。

      如果您当前的版本是 3.x.x,请将其升级到最新的 3 版本,您可以从这里找到所有可用的版本。

      v3.x.x - https://github.com/facebook/create-react-app/blob/master/CHANGELOG-3.x.md

      v2.x.x - https://github.com/facebook/create-react-app/blob/master/CHANGELOG-2.x.md

      【讨论】:

        【解决方案4】:

        Package.json 文件中修改构建脚本如下。

        "build": "react-scripts --max_old_space_size=4096 build"
        

        这应该可行!

        另外,在.env 文件中,您可以指定不为您的项目生成源映射,这将有助于您的应用加载更快!

        GENERATE_SOURCEMAP=false
        

        【讨论】:

        • 这对我有用,谢谢!
        猜你喜欢
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 2020-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-26
        相关资源
        最近更新 更多