基于节点的前端项目编译时内存溢出问题
这是一个基于新公共管理的运行建立在运行时会报前段时间内存溢出的Vue公司的项目,在技术交流群今天有个好朋友角项目基于这一问题的出现,所以查一些相关信息,下面将总结,详细描述了前三帧时编译器遇到这个问题如何解决。第一,看看我的模拟错误的内容具体截图如下
有关键词,call_and_retry_last分配失败的Javascript堆内存使用的堆内存,在这里,Javascript是节点,我们都知道节点是基于V8发动机,在一般的后端开发语言,基本内存无限制使用的东西,但我去查阅相关的信息才发现,节点只有一部分内存使用Javascript的内存(64位系统约1.4 GB,32位系统是大约0.7 GB),这就是为什么我们编译项目时会有内存泄漏,因为如果前端项目是非常大的,编译器将占据的WebPACK如果系统资源,在节点上的默认内存的V8引擎将限制大小的错误,我只是截图的出现,如何solvewhat呢V8仍然提供了我们使用更多内存的选项。节点可以转移使用最大旧空间大小或最大新空间大小来调整开机时的内存大小。示例如下
节点-最大的旧空间大小= 1700 test.js / / MB单位
或
节点-最大的新空间的大小= 1024 test.js / / KB单位
以上参数是在V8引擎初始化并不能动态地改变他们一旦生效。如果节点无法分配足够的内存以Javascript,你可以用这种方式放松V8默认的内存限制,避免在实施过程中的一些记忆更容易崩溃,因为我们知道该解决方案将更容易,这里有三个框架下的具体操作的详细描述。
Vue
让我忧,因为Vue公司是最简单的,因为Vue CLI项目形成基于Vue,不是package.json里面的脚本脚本命令的节点指挥领域是隐藏的,我们直接把上述参数提供的V8引擎直接进入节点命令脚本字段选项是好的,举例如下
建:结——max_old_space_size = 4096建立/建设。JS
这是写max_old_space_size = 4096直接在结好。我这里是4G的内存大小,以及具体的尺寸可以根据我的项目,然后再次运行和新公共管理的建设可以打包并建立正常。
反应
这里的是什么,第一反应,如果他们的反应项目包环境是构建自己的语言的发展,解决如上VUE相同,节点的命令之后,max_old_space_size = 4096,如果它是由反应基于看CLI项目产生的,我们发现反应生成的项目基于CLI package.json脚本领域如下
脚本:{
开始:反应脚本开始
:生成脚本
测试:反应脚本测试环境= jsdom
弹出 反应脚本弹出
}
这不是为Vue CLI一样,运行时编译运行脚本生成反应运行的实际代码,脚本是来自哪里,我们打开项目的根目录mode_modeles文件夹,你会看到a. Bin目录,反应脚本脚本定义中可以找到。bin目录称为反应脚本文件,打开文件,我们发现有一些Javascript代码,这段代码的第一行在一些特殊的,我们可以看到#! / usr /斌/环境这个代码,这意味着节点,运行该文件内的Javascript代码与计算机/ usr /斌/环境目录节点,在这里我们都明白。我们要解决的首要问题,我们可以把这行代码写的是-- max_old_space_size = 4096 / usr /斌/环境#!节点/ usr /斌/环境节点——max_old_space_size = 4096,#!这样更好,我们的内存溢出问题就可以解决了。
角
终于开始说角,当然这里说的角是角的最新版本是AngularJS,写一个角的申请我们将使用角CLI的建设项目,要建立自己的解决方案和编制以上是VUE相同。角CLI所产生的项目也为相同的反应,和CLI隐藏节点的命令,并在package.json脚本的领域内容如下
脚本:{
:NG
开始:NG服务
:NG构建
测试:NG测试
皮棉:NG皮棉
端到端:吴E2E
}
这里是吴指挥和反应的定义在项目根目录下的bin目录mode_modeles文件夹。,。Bin的目录,我们可以找到一个文件名为NG,写在文件的第一行#! / usr /斌/环境节点——max_old_space_size = 4096,所以它可以解除V8节点内存使用限制。
参考资源
深入Node.js
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。