`react-scripts build' 使用 1GB 以上的内存

IT技术 reactjs build react-scripts
2021-04-28 14:38:19

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

所以看起来我的选择是花更多的钱升级到服务器上的2GB内存,或者找到一些方法来减少内存使用。我想避免支付更多费用,因为通常我不会使用超过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构建过程使用这么多内存?

4个回答

来自类似问题的答案

您可以只放置--max_old_space_size节点进程而不是react脚本。

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

  1. 您可以swap在生产服务器上添加空间。请参考这个
  2. node您在生产服务器上使用的是什么版本?尝试node使用nvm或其他方式升级您的版本我认为这对你来说是个问题。

我遇到过类似的问题,但就我而言,当我更新 CRA (create-react-app) 附带的 react-scripts 包时,它对我有所帮助。

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

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

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

临时解决方案是设置更大的 max-old-space-size 如下。

react-scripts --expose-gc --max-old-space-size=8192