reactjs “react-scripts build "使用1+ GB的RAM

mzaanser  于 2023-03-01  发布在  React
关注(0)|答案(5)|浏览(186)

我有一个相对简单的React 15网站。它只有几个不同的页面,主要是文本和一些图片。但是,当我使用react-scripts build构建用于生产部署的项目时,我发现节点进程在使用大约1.25 GB的RAM时达到最高。在我的工作站上构建时,这不是一个问题。但这是我的生产服务器上的一个问题,我目前只有1 GB的RAM可用。大多数时候,服务器会因为内存不足而终止我的构建。
因此,我的选择似乎是花更多的钱将服务器上的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启动构建,向npm命令添加--max-old-space-size标志似乎没有任何作用。
我可以做些什么来防止react-scripts构建过程使用如此多的内存?

s5a0g9ez

s5a0g9ez1#

similar question的答案是:
您可以只为节点进程放置--max_old_space_size,而不是react-script。
例如node --max_old_space_size=512 node_modules/.bin/react-scripts build

n3h0vuf2

n3h0vuf22#

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

4xrmg8kj

4xrmg8kj3#

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

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

这应该行得通!
此外,在.env文件中,您可以指定不为您的项目生成源Map,这将有助于您的应用程序加载更快!

GENERATE_SOURCEMAP=false
1dkrff03

1dkrff034#

我也遇到过类似的问题,但在我的情况下,当我更新CRA(create-react-app)附带的react-scripts包时,它帮助了我。
如果您当前的版本是3.x.x,请将其升级到最新版本3,您可以在此处找到所有可用的版本。
版本3.x.x-https://github.com/facebook/create-react-app/blob/master/CHANGELOG-3.x.md
版本2.x.x-https://github.com/facebook/create-react-app/blob/master/CHANGELOG-2.x.md

5f0d552i

5f0d552i5#

GENERATE_SOURCEMAP=false in .env帮助了我,但不确定这样做是否是个好主意?

相关问题