【无标题】

文章讲述了在Windows10环境下Vue项目打包时遇到内存溢出的问题,涉及到了npm配置、内存限制命令、node_modules文件夹处理及package.json文件的修改。作者分享了解决方案,包括修改`npmrunbuild`命令中的`node--max-old-space-size`参数,以及可能需要调整`serve`命令以避免命令行识别错误。
摘要由CSDN通过智能技术生成

vue内存溢出报错

'"node --max-old-space-size=10240"' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
npm ERR! code ELIFECYCLE
npm ERR! errno 9009
npm ERR! mscodevue@3.0.2 dev: `vue-cli-service serve`
npm ERR! Exit status 9009
npm ERR!
npm ERR! Failed at the mscodevue@3.0.2 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\MySoftware\nodejs\node_cache\_logs\2022-03-12T12_18_02_919Z-debug.log

D:\layoutMachine\client\mscodevue>

在这里插入图片描述

在cmd中执行下面两个代码

1

npm install -g increase-memory-limit

1

increase-memory-limit

没有完全解决的继续看,以解决的不用看。

在vscode中,点击文件,点击首选项,点击设置

在这里插入图片描述

在search中搜索Exclude,找到Search Exclude,把**/node_modules删掉

在这里插入图片描述

然后点击编辑,点击替换把"%_prog%" 替换成 %_prog% (即去掉双引号)

在这里插入图片描述

重新run

在这里插入图片描述

解决问题

vue项目打包内存溢出问题踩坑

我的环境: win10环境 node.js版本 12+ 内存16G

今天系统升级时通过运行npm run build:prod命令(或npm run build)

打包时一直报错

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

因为我是从后台刚转到前端,虽然知道是内存溢出要把内存配置改大点

从网上搜的答案还是踩坑了

  • 删除 C:\Users{账户}\下的.npmrc文件 我删了,没看出有啥变化,依然报错(重启了,清缓存了)
  • 全局安装 increase-memory-limit插件

这个安装上以后运行打包命令直接报错了,报错信息为

'“node --max-old-space-size=4096”'不是内部或外部命令,也不是可运行的程序

这里不是内存设置太大,而是因为win10系统命令行中不能正确识别双引号"",因此还要把这个插件包中涉及到的脚本中双引号都去掉,即修改node_modules下的.bin文件中的所有.cmd文件,将里面的"%_prog%" 去掉双引号 改成 %_prog%

项目中依赖的模块那么多,就算可以批量替换,但代码改动越多,风险越大,想想太麻烦了,所以再想想办法吧!

  • 修改package.json文件中build命令处

1

"build": "node --max_old_space_size=4096 build/build.js"

我的项目使用vue-cli搭建的,不是引用上述build/build.js这种写法,而是下面写法:

1

"build:prod": "vue-cli-service build"

最终针对我的有效方案

上面那行代码改为:

1

"build:prod": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js build"

改完之后运行 npm run build打包没问题了,但是npm run serve 报了’“node --max-old-space-size=4096”'不是内部或外部命令,也不是可运行的程序,要不就用vscode将项目下所有.cmd文件里面的"%_prog%"双引号去掉,要不就将package.json里面的serve命令也改成build命令里面的格式

1

"serve": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --open",

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值