我有一个相对简单的React 15网站。它只有几个不同的页面,主要是文本和一些图片。但是,当我使用react-scripts build
构建用于生产部署的项目时,我发现节点进程在使用的1.25 GB RAM上达到最高。在工作站上构建时,这不是问题,但是在生产服务器上是个问题,目前我的生产服务器上只有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”开始构建,然后在该npm命令中添加--max-old-space-size标志似乎没有任何作用。
我有什么办法可以防止react-scripts构建过程占用大量内存?
答案 0 :(得分:1)
swap
空间。请参阅thisnode
版本?
尝试使用 nvm
or other ways 升级您的 node
版本。我认为这对你来说是个问题。答案 1 :(得分:0)
similar question的答案:
您只需将--max_old_space_size
放入节点进程即可,而不是react-script。
例如node --max_old_space_size=512 node_modules/.bin/react-scripts build
答案 2 :(得分:0)
我遇到了类似的问题,但就我而言,它在我更新时帮助了我 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
答案 3 :(得分:-1)
临时解决方案是设置更大的 max-old-space-size,如下所示。
<块引用>react-scripts --expose-gc --max-old-space-size=8192