解决vue内存溢出报错的问题

目录
  • vue内存溢出报错
  • vue项目打包内存溢出问题踩坑
    • 打包时一直报错
    • 从网上搜的答案还是踩坑了
    • 最终针对我的有效方案

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中执行下面两个代码

npm install -g increase-memory-limit
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命令处
"build": "node --max_old_space_size=4096 build/build.js"

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

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

最终针对我的有效方案

上面那行代码改为:

"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命令里面的格式

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Vue优化:常见会导致内存泄漏问题及优化详解

    如果你在用 Vue 开发应用,那么就要当心内存泄漏的问题.这个问题在单页应用 (SPA) 中尤为重要,因为在 SPA 的设计中,用户使用它时是不需要刷新浏览器的,所以 JavaScript 应用需要自行清理组件来确保垃圾回收以预期的方式生效.因此在vue开发过程中,你需要时刻警惕内存泄漏的问题,这些内存泄漏往往会发生在使用 Vue 之外的其它进行 DOM 操作的三方库时,请确保测试应用的内存泄漏问题并在适当的时机做必要的组件清理. 下面是我开发过程中遇到,并查资料总结的内存泄漏问题,会持续更新中

  • vue单页应用的内存泄露定位和修复问题小结

    在前端项目(PC端)中,内存泄露的定位往往比修复更加困难,即使google浏览器有提供Memory工具,但是面对成千上万的元素和错综复杂的引用关系,开发则依然很难快速定位到问题代码块. 一.什么是内存泄漏? 系统进程不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak).当内存占用越来越高,轻则影响系统性能,重则导致进程崩溃.Chrome限制了浏览器所能使用的内存极限(64位为1.4GB,32位为1.0GB),这也就意味着浏览器将无法直接操作一些大内存对象. V8引擎在执行垃圾回

  • vue中的eventBus会不会产生内存泄漏你知道吗

    目录 引入 内容 eventBus在vue中的实现 例子:使用eventBus 例子:不及时取消订阅 其它注意事项 总结 eventBus是在vue中经常用来解决跨组件消息传递的问题,但对它的使用要特别注意,否则会产生很严重的后果. 引入 本文介绍了eventBus的实现原理,并介绍它如何在vue中使用,并举了一个具体的例子来说明,如果使用不当,它会造成内存泄漏. 要注意eventBus并不是前端的概念. 由greenrobot [1] 组织贡献(该组织还贡献了greenDAO),一个Andro

  • electron-vue开发环境内存泄漏问题汇总

    package.json "dependencies": { "vue": "^2.5.16" }, "devDependencies": { "ajv": "^6.5.0", "babel-core": "^6.26.3", "babel-loader": "^7.1.4", "babel-plu

  • vue:内存泄露详解

    什么是内存泄露?内存泄露是指new了一块内存,但无法被释放或者被垃圾回收.new了一个对象之后 ,它申请占用了一块堆内存,当把这个对象指针置为null时或者离开作用域导致被销毁,那么这块内 存没有人引用它了在JS里面就会被自动垃圾回收.但是如果这个对象指针没有被置为null,且代码面 没办法再获取到这个对象指针了,就会导致无法释放掉它指向的内存,也就是说发生了内存泄露. 内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造 成系统内存的浪费,导致程序

  • 解决vue-cli项目开发运行时内存暴涨卡死电脑问题

    最近开发一个vue项目时遇到电脑卡死问题,突然间系统就非常卡,然后卡着卡着就死机了,鼠标也动不了了,只能冷启动.而且因为是突然卡死,没来得及打开任务管理器. 最开始以为是硬盘的问题,但是在卡死几次后,就想到把任务管理器开着玩项目,看看到底是不是哪个程序把硬盘或者CPU占满了导致的卡死.经过一番排查,发现是node.js进程的内存一直在暴涨,内存直接100%,然后系统将所有休眠进程换到虚拟内存,但是还是不够,就一直换直到崩盘,硬盘也被占满100%. 这时候我才知道是运行项目开发环境导致的.然后想到

  • 解决vue自定义指令导致的内存泄漏问题

    vue的自定义指令是一个比较容易引起内存泄漏的地方,原因就在于指令通常给元素绑定了事件,但是如果忘记了解绑,就会产生内存泄漏的问题. 看下面代码: directives: { scroll: { inserted (el, cb) { // 不是元素节点 || 未设置回调函数 if (el.nodeType !== 1 || !cb) return let direct = 'down' let rollHeight = 0 let getScrollEventTarget = (target)

  • 解决vue内存溢出报错的问题

    目录 vue内存溢出报错 vue项目打包内存溢出问题踩坑 打包时一直报错 从网上搜的答案还是踩坑了 最终针对我的有效方案 vue内存溢出报错 '"node --max-old-space-size=10240"' 不是内部或外部命令,也不是可运行的程序或批处理文件.npm ERR! code ELIFECYCLEnpm ERR! errno 9009npm ERR! mscodevue@3.0.2 dev: `vue-cli-service serve`npm ERR! Exit st

  • 解决vue net :ERR_CONNECTION_REFUSED报错问题

    我是因为频繁的更换网络,导致这样的. 然后我回忆了一下.之前每次改ip都会把Package.json 中的 --host 0.0.0.0改成我的固定ip,由于改来改去太麻烦了,我就设置为0.0.0.0 所以喜提上图的一排get请求 "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0", 解决办法 把 --host 0.0.0.

  • 解决vue安装less报错Failed to compile with 1 errors的问题

    1.创建vue项目后安装less,执行 npm install less less-loader --save-dev 下载版本为:less-loader@6.1.0 , less@3.11.3,重启服务报错,报错信息如下: 2.报错原因 less 本版太高需要降低版本,执行代码 先移除之前版本: npm uninstall less-loader 下载指定版本: npm install less-loader@5.0.0 -D 3.重启代码就可以了,若还是报错可移除文件node_modules

  • vue 解决循环引用组件报错的问题

    做项目时遇到使用循环组件,因为模式一样,只有数据不一样.但是按照普通的组件调用格式来做时报错,错误信息为Unknown custom element: <pop> - did you register the component correctly? For recursive components, make sure to provide the "name" option. 查询了官方文档,还有其他的资料,发现是循环调用组件时,组件比vue实例后创建,官方文档里写组件

  • vue如何解决循环引用组件报错的问题

    问题由来 最近在做项目的时候遇到使用循环组件,因为模式一样,只有数据不一样.按照普通组件调用格式来做的时候总是报错,错误信息为[Vue warn]: Unknown custom element: <selfile> - did you register the component correctly? For recursive components, make sure to provide the "name" option. 解决方案 查询了网上各种资料之后,发现是

  • vue 解决uglifyjs-webpack-plugin打包出现报错的问题

    楼主最新对已做项目进行打包优化,配置了打包环境下去除console.log语句插件---使用uglifyjs-webpack-plugin 具体代码如下 npm install uglifyjs-webpack-plugin -D const UglifyJsPlugin = require('uglifyjs-webpack-plugin') configureWebpack: config => { if (isProduction) { config.plugins = config.pl

  • vue如何解决空格和空行报错的问题

    目录 解决空格和空行报错问题 vue出现空格警告的原因 解决空格和空行报错问题 到build文件夹下面的webpack.base.conf.js文件. 然后打开该文件,找到图下这段代码,把他注释掉. 注释掉之后,再进行页面编写的时候,空格不规范的情况下也不会再报错了. 有的版本的webpack.base.conf.js文件会如下图一样将空格检测写一个函数里,然后再module里调用,这种情况只需注释掉调用的那一行代码即可: 如图注释这一行即可 vue出现空格警告的原因 初学vue自己新建一个vu

  • vue3使用别名报错问题的解决办法(vetur插件报错问题)

    解决vue3使用别名报错问题: 在vue-cli3以上,创建vue3工程以及使用typescript中,会自动配置好别名. 见于项目根路径下的 tsconfig.json "baseUrl": ".", "paths": { "@/*": [ "src/*" ] } "include": [ "src/**/*.ts", "src/**/*.tsx"

  • 快速解决百度编译器json报错的问题

    在MyEclipse中JSON字符串的换行值是不同的,必须以'/n'换行,如果只是json验证的问题,可以把json的验证关掉试试. 点击所在的项目->Project->Proterties->MyEclipse->Validation,把JSON Validator中的Manual和Build的对号给去掉,然后apply,确定,clean缓存. 清除myeclipse缓存的方法如下 找到软件导航窗内的project下的clean,选择要清除缓存的项目,点击clean projec

  • linux解决Tomcat内存溢出的问题

    Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA虚拟机.JAVA程序启动时JVM会分配一个初始内存和最大内存给程序.当程序需要的内存超出内存的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃. 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出 解释说明:JVM在启动的时候会自动设置JVM Heap的值,JVM堆的设置是指java程序运行过程中JVM可以调配使用的

随机推荐

其他