問題:執行npm run serve時報錯,提示js堆內存不足
報錯:FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
在網上找的可以擴展內存的方法:
1、在添加package.json中添加語句:
"serve": "node --max_old_space_size=10240 node_modules/.bin/vue-cli-service serve --open"
2、修改打開node_modules/.bin/webpack.cmd文件,在node命令后面加上–max-old-space-size=10240
3、刪除C盤用戶文件夾下的npmrc文件(未找到);
4、打開cmd運行窗口,運行 setx NODE_OPTIONS --max_old_space_size=4096
5、打開cmd,輸入如下命令:
安裝插件:npm install -g increase-memory-limit
執行命令:npx cross-env LIMIT=10240 increase-memory-limit
(cmd中安裝不成功,還是報內存不足的錯)
解決:嘗試在項目所在目錄下安裝上述命令成功,再次運行npm run serve,報錯如下:
報錯:node --max-old-space-size=10240 不是內部或外部命令,也不是可運行的程序或批處理文件。
最終解決:
在項目中node_modules/.bin文件夾下,修改webpack.cmd 、webpack-dev-server.cmd 、 vue-cli-service.cmd文件,去掉雙引號, 修改
"%_prog%" 為 %_prog%,即可正常運行。
待解決:不知道為什么按照方法5不能全局安裝,只能在項目文件夾下安裝?為什么安裝插件后沒有成功修改cmd文件的內容,必須手動去掉雙引號?
看網上說V8之后不需要用increase-memory-limit這個插件了,只需設置:export NODE_OPTIONS=--max_old_space_size = 10240(不知道具體在哪里設置)