严重错误:CALL_AND_RETRY_LAST分配失败-生产中的JavaScript堆内存不足

时间:2019-08-09 11:49:21

标签: node.js vue.js npm

从上周开始的大部分时间里,我的工作量为FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

我试图增加HEAP的大小,但是没有成功。由于它在生产中发生,因此无法继续使用它,因此下降了一段时间。我在Laravel应用程序中使用Vuejs和.less。

package.json中的脚本如下:

"scripts": {
    "start": "npm run watch",
    "dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},

NPM版本为4.6.1 NODE版本为8.16

我在开发中没有遇到这个错误,但是我尝试了一些开发和生产中的解决方案。

我尝试添加npm程序包

`npm install -g increase-memory-limit` 

然后

`increase-memory-limit` 

但是当我执行npm run devnpm run watch时,模块没有编译。这个过程卡了很长时间,什么也没发生。

我也尝试在生产中添加以下脚本:      "scripts": { "fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit" }, "devDependencies": { "increase-memory-limit": "^1.0.3", "cross-env": "^5.0.5" }

但是它也不起作用。软件包损坏了,最后不得不删除了代码。

The source is here

我还尝试使用dev中的以下脚本:

"dev": "cross-env NODE_OPTIONS=\"--max-old-space-size=4096\" NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"

我没有收到任何错误,但是我不确定它是否可以在生产中使用。这是正确的方法吗?

或类似的内容:

npm run dev NODE_OPTIONS="--max-old-space-size=4096"

不能再有更多的生产机会,已经有2、3个故障。

有人可以建议一种更好的方法吗?我如何检查HEAP大小是否增加。

1 个答案:

答案 0 :(得分:0)

我有同样的问题, 我通过找出来解决,在Vue文件中<div>之后必须有<template>