liujiusheng / blog

个人博客,blog
19 stars 0 forks source link

Angular框架Node.js打包内存溢出 #174

Open liujiusheng opened 4 years ago

liujiusheng commented 4 years ago

Angular中代码量过大时有时候打包不出来,但是部分电脑可以打包出来。

Windows下可设置node的内存: set NODE_OPTIONS=--max_old_space_size=8192。单位为MB

--max_new_space_size:单位为KB

深入分析后发现引起问题的是node-sass。与max_old_space_size无关。所以修改node.js的内存并没有什么用。

网上查了node-sass后发现很多人都遇到过同样的问题,而且这个包还有其它各种奇怪问题,统一推荐dart-sass,dart-sass的npm包为sass,安装很方便,但是由于使用的Angular,低版本的Angular使用的是node-sass,找了半天也不知道在哪里引用的node-sass,所以放弃直接替换node-sass为dart-sass的方案。

最终解决方案:

重新安装Angular CLI,用CLI重新生成新项目,生成新项目时选择使用route,scss,将原src目录下的业务代码替换到新的框架下,重新安装原项目用到的其它依赖,重新yarn run build,成功。