React16 编译报错”node内存溢出”的解决方案


theme: vue-pro

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

在版本16的React项目中使用npm run build打包时,遇到node内存溢出问题。

需要将百度的amis低代码库的编辑器功能嵌入现有项目中,将 amis-editor 打包时发现报错,一直跑不起来,网上找了几个项目对比,react版本多是16,使用react脚手架默认搭建的项目是最新版本。于是手动降到16,打包时又遇到了新的问题。 报错截图如下:
image.png
网上查找到的解决方案: 方案一:
安装increase-memory-limit插件,扩大node的内存限制
安装:
npm install -g increase-memory-limit
执行:
increase-memory-limit 或 increase-memory-limit --max-old-space-size=8192
但是,这个解决方案在我的项目里面并没有用,可能是我的系统上内存限制过低,具体原因暂不清楚 方案二:
通过package.json加大内存,在启动node
node --max-old-space-size=8192 path/to/your/build/script
“path/to/your/build/script” 是你的应用的构建脚本的路径。同方案一,这个项目中依然不起作用 方案三:
在nodejs 根目录下建一个node.cmd文件 里面写上 node2.exe --max-old-space-size=8192 %*
大概意思就是本来调用node.exe的时候被node.cmd劫持,强制分配最大内存为8192MB ,然后再调用node.exe。
这种改法,一般人真想不到,但我觉得大同小异吧,对于这个项目也确实没起作用 方案四:√
根目录新建.env文件,用于存储环境变量,在 ".env" 文件中配置 "GENERATE_SOURCEMAP=false"
image.png
在 “.env” 文件中配置 “GENERATE_SOURCEMAP=false” 时,意味着禁用源映射。源映射是一种用于调试 JavaScript 代码的技术,它可以将压缩后的 JavaScript 代码映射回原始的未压缩代码。这样,当你在调试压缩后的 JavaScript 代码时,就可以在调试器中看到未压缩的代码,而不是压缩后的代码。 配置 “GENERATE_SOURCEMAP=false”,表示你希望在打包过程中生成源映射。这通常是因为希望节省打包时间,或者希望减小打包后的文件大小。
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容