【发布时间】:2018-01-07 17:03:12
【问题描述】:
我在 Windows 10 中为我的 Angular 4 项目进行产品构建时遇到以下错误:
92% chunk asset optimization
<--- Last few GCs --->
[2608:000002518B1007B0] 578653 ms: Mark-sweep 1400.7 (1534.2) -> 1400.7 (1502.2) MB, 1409.9 / 0.0 ms last resort
[2608:000002518B1007B0] 579952 ms: Mark-sweep 1400.7 (1502.2) -> 1400.7 (1501.2) MB, 1298.6 / 0.0 ms last resort
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0000003DF7DA66A1 <JS Object>
1: DoJoin(aka DoJoin) [native array.js:~97] [pc=0000032E01B053FC](this=000001F775C02311 <undefined>,q=0000010002582251 <JS Array[4]>,r=4,F=000001F775C023B1 <true>,B=000001F775C02471 <String[0]: >,A=000001F775C02421 <false>)
2: Join(aka Join) [native array.js:~122] [pc=0000032E01E5AD22](this=000001F775C02311 <undefined>,q=0000010002582251 <JS Array[4]>,r=4,B=000001F775C02471 <String[0]...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
我尝试了什么: 编辑 webpack.cmd 如下(如其中一篇 SO 帖子中所建议的那样),但这没有帮助:
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" --max_old_space_size=8048
"%~dp0\..\webpack\bin\webpack.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node --max_old_space_size=8048
node "%~dp0\..\webpack\bin\webpack.js" %*
)
额外信息
@angular/cli: 1.0.0
node: 7.9.0
os: win32 x64
@angular/animations: 4.1.3
@angular/common: 4.1.3
@angular/compiler: 4.1.3
@angular/core: 4.1.3
@angular/forms: 4.1.3
@angular/http: 4.1.3
@angular/platform-browser: 4.1.3
@angular/platform-browser-dynamic: 4.1.3
@angular/router: 4.1.3
@angular/cli: 1.0.0
@angular/compiler-cli: 4.1.3
在这个问题的所有 github 和 SO 页面中,建议为 node 分配更多内存,我也这样做了,但没有成功。 我非常需要进行产品构建,请建议我如何克服这个问题
【问题讨论】:
-
您添加更多内存的版本与答案中发布的版本不同。答案是为 webpack 设置单节点执行标志。你的版本有 2 个节点执行,第一个普通节点增加堆标志但什么都不做,第二个运行 webpack 而没有增加内存。
-
我是在马塞洛指出之后才注意到这一点的。所以我进行了更改,但仍然遇到相同的错误
-
尝试更改
ng.cmd而不是webpack.cmd -
也试过了……没用
-
我也试过 Ubuntu,也出现同样的错误......
标签: javascript node.js angular typescript webpack