前端项目打包 JavaScript heap out of memory以及windows下切换node版本
背景交代
最近换了台设备跑公司的项目,刚开始一切正常,然而打包的时候报错了...
Angular 7/8 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
搜索涨了一波知识,说是node的可用内存是有一个默认上限的,可以通过给打包命令特定的内存上限的方式解决
可是我不甘心啊... 这命令看着就别扭,
我两台机子,现在这台的配置要远高于上一台,唯一的区别貌似就是node版本了,一个v12.14.0 之前的v10.16.3.
所以我有了一个大胆的想法...
手动卸载再安装node貌似比较麻烦,一顿搜...
坑
n模块
这东西win下不能用的,就算--force
装上了你也用不了
windows下使用nvm
下载
windows直接下载nvm-setup.zip
安装
安装过程默认即可,安装完成之后命令行运行nvm查看是否安装成功
配置
nvm安装的目录下找到settings.txt文件,追加
node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/
不然没梯子的情况下没法用
命令介绍
-
nvm list [available]
: 列出本机已安装的node版本,可选参数[available]列出可下载的node版本
-
nvm install <version> [arch]
: 安装指定版本的node,可选参数[arch]是用来指定32/64位,我们安装的时候一般指定是默认的跟随操作系统,所以貌似也不怎么用得到 -
nvm use <version> [arch]
: 切换到指定node版本.可选参数[arch]同上
使用
使用nvm list
查看目前已经安装的版本
nvm list available
显示可下载版本的部分列表
nvm install 版本号
安装指定的版本的nodejs
nvm use 版本号
使用指定版本的nodejs
成功把node版本切换到10.16.3之后果然默认命令就能打包了...美滋滋