一、问题
\n\n\n\n最近在写一个 vue 项目,在进行 npm run dev 的时候,经常发现编译崩溃的事情,然后就需要再次 npm run dev。
主要的报错信息如下:
\n\n\n\n\n\n\n\nFATAL ERROR :CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of
二、解决
\n\n\n\n问题主要出现在 node 对于内存的限制上,网上的解决方法很多都是基于之前版本的 vue-cli
\n\n\n\n那个时候的 vue-cli 的 scripts 还是直接使用的 node xxxx 命令,因此无法直接添加 node 运行参数。
基本的解决方法就是增大内存,如果使用新版本的 vue-cli ,scripts 中 dev 是隐藏了 node 参数的:
\n\n\n\n"scripts": {\n "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",\n "start": "npm run dev",\n "build": "node build/build.js"\n },\n\n\n\n\n\n需要直接去修改 webpack.cmd:
文件路径在:
\n\n\n\nnode_modules/.bin/webpack.cmd
\n\n\n\n在 node 命令上加上参数即可。
\n\n\n\n之前的文件内容:
\n\n\n\n@IF EXIST "%~dp0\\node.exe" (\n "%~dp0\\node.exe" "%~dp0\\..\\webpack\\bin\\webpack.js" %*\n) ELSE (\n @SETLOCAL\n @SET PATHEXT=%PATHEXT:;.JS;=;%\n node "%~dp0\\..\\webpack\\bin\\webpack.js" %*\n)\n\n\n\n\n\n
修改之后的文件内容:
\n\n\n\n@IF EXIST "%~dp0\\node.exe" (\n "%~dp0\\node.exe" "%~dp0\\..\\webpack\\bin\\webpack.js" %*\n) ELSE (\n @SETLOCAL\n @SET PATHEXT=%PATHEXT:;.JS;=;%\n node "--max-old-space-size=4096 %~dp0\\..\\webpack\\bin\\webpack.js" %*\n)\n