iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >如何解决基于node的前端项目编译时内存溢出问题
  • 137
分享到

如何解决基于node的前端项目编译时内存溢出问题

2024-04-02 19:04:59 137人浏览 八月长安
摘要

这篇文章给大家分享的是有关如何解决基于node的前端项目编译时内存溢出问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先看我模拟出的报错内容具体截图如下里面有句关键的话,CA

这篇文章给大家分享的是有关如何解决基于node前端项目编译时内存溢出问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

首先看我模拟出的报错内容

具体截图如下

如何解决基于node的前端项目编译时内存溢出问题

里面有句关键的话,CALL_AND_RETRY_LAST Allocation failed - javascript heap out of memory JavaScript堆内存不足,这里说的 JavaScript 其实就是 Node,我们都知道 Node 是基于V8引擎,在一般的后端开发语言中,在基本的内存使用上没有什么限制,但是我去查阅了相关的资料才发现,在 Node 中通过 JavaScript 使用内存时只能使用部分内存(64位系统下约为1.4 GB,32位系统下约为0.7 GB),这就是我们编译项目时为什么会出现内存泄露了,因为前端项目如果非常的庞大,webpack 编译时就会占用很多的系统资源,如果超出了V8对 Node 默认的内存限制大小就会出现刚刚我截图的那个错误了,那怎么解决呢?V8依然提供了选项让我们使用更多的内存。Node 在启动时可以传递 --max-old-space-size 或 --max-new-space-size 来调整内存大小的使用限制,示例如下

node --max-old-space-size=1700 test.js // 单位为MB
// 或者
node --max-new-space-size=1024 test.js // 单位为KB

上述参数在V8初始化时生效,一旦生效就不能再动态改变。如果遇到 Node 无法分配足够内存给 JavaScript 的情况,可以用这个办法来放宽V8默认的内存限制,避免在执行过程中稍微多用了一些内存就轻易崩溃,既然知道了解决办法那就好办了,下面来分别详细说明三大框架下的具体操作。

Vue

先说Vue,因为vue是最简单的,因为基于 vue-cli 生成的项目,vue没有把 package.JSON 里面 scripts 字段的脚本命令的node命令隐藏起来,我们直接把上面v8提供的选项参数直接写入scripts 字段的 node 命令后就好了,示例如下

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

直接在 node 后面写上 --max_old_space_size=4096 就好了,我这里设置的内存大小是4G,这个具体的大小可以根据自己的项目情况来设置就好了。然后再重新运行 npm run build 就可以正常打包构建了。

React

下面来说说 React ,首先如果自己的 react 项目的开发打包环境是自己搭建的话,那解决方法就和上面的 vue 一样,在 node 命令后面加上 --max_old_space_size=4096 就好了,如果是基于 react-cli 生成的项目那就接着看吧,基于react-cli 生成的项目我们发现package.json 里面 scripts 字段的内容如下

"scripts": {
 "start": "react-scripts start",
 "build": "react-scripts build",
 "test": "react-scripts test --env=jsdom",
 "eject": "react-scripts eject"
}

这个就和 vue-cli 不一样了,运行npm run build的时候跑的实际代码是 react-scripts build, 这个脚本是来源于哪里呢,我们打开项目根目录mode_modeles文件夹,会看到一个.bin的目录,react-scripts脚本就定义在这里,在.bin目录下可以找到一个叫react-scripts的文件,打开这个文件,我们发现里面就是一些javascript代码,这个代码的首行有些特殊,我们可以看到#!/usr/bin/env node一行这样的代码,它的意思就是,用当前电脑/usr/bin/env目录下的node来运行该文件里面的javascript代码,看到这里我们都明白了,回到我们最初要解决的问题,我们可以把--max_old_space_size=4096这行代码写在#!/usr/bin/env node后面,#!/usr/bin/env node --max_old_space_size=4096,这样就好了,我们的内存溢出问题也就解决了。

Angular

最后开始说 angular ,当然这里说的 angular 是 angular 的最新版本不是angularjs,写angular应用我们一般也都会用angular-cli来搭建项目,如果是自己搭建的开发编译那解决办法和上面的vue是一样的了。用angular-cli来生成的项目也和react一样,cli把node命令也隐藏起来了,package.json 里面 scripts 字段的内容如下

"scripts": {
 "ng": "ng",
 "start": "ng serve",
 "build": "ng build",
 "test": "ng test",
 "lint": "ng lint",
 "e2e": "ng e2e"
}

这里的ng命令也和react一样,定义在项目根目录mode_modeles文件夹下的.bin目录里面,.bin目录下我们能找到一个叫ng的文件,在该文件的首行写上#!/usr/bin/env node --max_old_space_size=4096,这样也就可以解除v8对node的内存使用限制了。

感谢各位的阅读!关于“如何解决基于node的前端项目编译时内存溢出问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何解决基于node的前端项目编译时内存溢出问题

本文链接: https://www.lsjlt.com/news/76488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决基于node的前端项目编译时内存溢出问题
    这篇文章给大家分享的是有关如何解决基于node的前端项目编译时内存溢出问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先看我模拟出的报错内容具体截图如下里面有句关键的话,CA...
    99+
    2024-04-02
  • 解决MyEclipse下启动项目时JBoss内存溢出的问题
    配置1:-Xms64m -Xmx512m配置2:-c default -b 0.0.0.0-Xmx1024M -Xms512M -XX:MaxPermSize=256m以上这篇解决MyEclipse下启动项目时JBoss内存溢出的问题就是小...
    99+
    2023-05-31
    jboss 内存溢出 myeclipse
  • 解决运行vue项目内存溢出问题
    目录运行vue项目内存溢出记录一下JavaScript heap out of memory(Vue项目运行内存溢出)解决方法运行vue项目内存溢出 npm clone下拉的项目,s...
    99+
    2024-04-02
  • vue项目内存溢出问题及解决方案
    目录vue项目内存溢出的解决vue项目内存溢出问题问题解决方法1解决方法2总结vue项目内存溢出的解决 最近在对原有项目进行迭代升级,有用代码越来越多,导致内存溢出了。 正常启动运行...
    99+
    2023-01-28
    vue项目内存溢出 vue内存溢出 内存溢出问题
  • Spring Cloud Gateway内存溢出问题如何解决
    本篇内容主要讲解“Spring Cloud Gateway内存溢出问题如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Cloud Gateway内存溢出问题如何解决”吧!记 ...
    99+
    2023-06-20
  • 如何解决angular4中JavaScript内存溢出问题
    这篇文章主要介绍如何解决angular4中JavaScript内存溢出问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近在写基于angular4的项目的时候,在build --p...
    99+
    2024-04-02
  • c语言内存溢出问题如何解决
    C语言内存溢出问题可以通过以下几种方式来解决:1. 检查代码逻辑:检查代码中的循环、递归、动态内存分配等地方是否存在错误,比如没有正...
    99+
    2023-10-10
    c语言
  • 如何解决PHP开发中的内存溢出问题
    随着PHP的应用越来越广泛,PHP开发中的内存溢出问题也成为了开发者们共同面临的挑战。内存溢出是指程序在运行过程中申请的内存超过了内存空间的限制,导致程序出现异常或崩溃的情况。本文将介绍如何解决PHP开发中的内存溢出问题,并提供一些具体的代...
    99+
    2023-10-21
    解决方法 内存溢出
  • webpack打包、编译、热更新Node内存不足问题如何解决
    本篇内容主要讲解“webpack打包、编译、热更新Node内存不足问题如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“webpack打包、编译、热更新Node内存不足问题如何解决”吧!日常...
    99+
    2023-07-05
  • Redis序列化时的内存溢出问题怎么解决
    Redis在进行序列化时可能会出现内存溢出的问题,主要原因是序列化的数据量过大或者是Redis服务器的内存不足。要解决这个问题,可以...
    99+
    2024-04-29
    Redis
  • 如何理解Java中的内存溢出问题
    这篇文章主要介绍“如何理解Java中的内存溢出问题”,在日常操作中,相信很多人在如何理解Java中的内存溢出问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Java中的内存溢出问题”的疑惑有所帮助!...
    99+
    2023-06-15
  • 如何解决基于Vue/React项目移动端适配的问题
    这篇文章给大家分享的是有关如何解决基于Vue/React项目移动端适配的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。px2rem或postcss-px2rem在移动端中,为...
    99+
    2024-04-02
  • 前端vue打包项目,如何解决跨域问题
    目录vue打包项目解决跨域vue项目解决跨域(打包上线无需手动切换url)vue打包项目解决跨域 前段时间做一个vue打包成安卓和IOS的App,遇到了跨域问题,直接拿了之前项目的配...
    99+
    2024-04-02
  • 如何解决Linux内核编译失败的问题
    本篇内容主要讲解“如何解决Linux内核编译失败的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决Linux内核编译失败的问题”吧!内核常识我们先要了解一点.一个内核有哪些东西.比如我...
    99+
    2023-06-12
  • 如何解决Vue项目编译后部署在非网站根目录的问题
    小编给大家分享一下如何解决Vue项目编译后部署在非网站根目录的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!同一个生产部署项...
    99+
    2024-04-02
  • 如何解决C#版Nebula客户端编译的问题
    小编给大家分享一下如何解决C#版Nebula客户端编译的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、需求背景从Nebula的Github上可以发现,Ne...
    99+
    2023-06-20
  • Excel数据导入Mysql常见问题汇总:如何解决导入大量数据时内存溢出的问题?
    Excel数据导入Mysql常见问题汇总:如何解决导入大量数据时内存溢出的问题?导入Excel数据到Mysql数据库是一个常见而重要的任务,在处理大量数据时,有时会遇到内存溢出的问题。本文将介绍一些解决这一问题的方法。拆分数据:如果Exce...
    99+
    2023-10-22
    Excel MySQL 内存溢出 解决问题 导入
  • 如何基于Jquery.history解决ajax的前进后退问题
    本篇内容介绍了“如何基于Jquery.history解决ajax的前进后退问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅...
    99+
    2024-04-02
  • 如何解决vue2中前后端分离项目ajax跨域session的问题
    这篇文章将为大家详细讲解有关如何解决vue2中前后端分离项目ajax跨域session的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现跨域请求时,每次ajax请求...
    99+
    2024-04-02
  • Java项目中的NPM缓存问题:如何解决?
    在现代Web开发中,NPM(Node Package Manager)已经成为了不可或缺的一部分。NPM是一个用于Node.js的包管理器,可以帮助开发者轻松地安装、更新和管理项目所需的各种依赖包。然而,在Java项目中使用NPM时,我们...
    99+
    2023-08-30
    leetcode npm 缓存
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作