内存溢出
node内存溢出而停止build项目, 即是项目构建过程中频繁报内存溢出:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory。 并且打包速度相当慢,估计项目过大了。
Node 是基于V8引擎,在 Node 中通过 JavaScript 使用内存时只能使用部分内存(64位系统下约为1.4 GB,32位系统下约为0.7 GB)
Node 在启动时可以传递 --max-old-space-size 或 --max-new-space-size 来调整内存大小的使用限制
node --max-old-space-size=1700 test.js // 单位为MB
// 或者
node --max-new-space-size=1024 test.js // 单位为KB
方案一
- 使用 increase-memory-limit npm包增增加node服务器内存限制
方案二
-
单独调整
-
Vue
// package.json 里面 scripts 内存设置为 4G,可自定义设置大小 "build": "node --max_old_space_size=4096 build/build.js"
-
React
// 寻找node_models -> .bin -> react-scripts -> 打开 -> 看到首行 #!/usr/bin/env node 修改为 #!/usr/bin/env node --max_old_space_size=4096
-
Angular
// 寻找node_models -> .bin -> ng -> 打开 -> 看到首行 #!/usr/bin/env node 修改为 #!/usr/bin/env node --max_old_space_size=4096