本项目用的是 angular4 搭建, 用动态组件的形式来显示页面, 之前遇到过因为内存溢出而导致无法 aot 的问题,
解决方法: 手动改写内存上限
修改目录: my-project/node_modules/.bin 找到 ng.cmd :
- @IF EXIST "%~dp0\node.exe" (
- "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\@angular\cli\bin\ng" %*
- ) ELSE (
- @SETLOCAL
- @SET PATHEXT=%PATHEXT:;.JS;=;%
- node --max_old_space_size=8192 "%~dp0\..\@angular\cli\bin\ng" %*
- )
修改目录: my-project/node_modules/.bin 找到 ngc.cmd :
- @IF EXIST "%~dp0\node.exe" (
- "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
- ) ELSE (
- @SETLOCAL
- @SET PATHEXT=%PATHEXT:;.JS;=;%
- node --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
- )
至于到底是什么原因导致的内存溢出, 还不清楚, 只是有如下猜测:
1) 文件过多;
2) 订阅数据没有销毁占用内存,(看了下订阅的数据很少, 应该不是的);
3) 因为所有的组件都在一个根目录下 (上面说了, 用的动态组件没用路由), 导致需要编译的组件过多?
暂时还不清楚只能先用设置内存上限的方法来解决, 有大神的话望不吝指教;
还有一个问题就是用动态组件的方式, 组件都在根目录下, 会导致首次加载的时间过长. 有奇思妙想请告诉我, 哈哈
来源: https://www.cnblogs.com/skylen/p/9242733.html