答案 0 :(得分:37)
对于那些从Google着手解决此问题的人,请使用非角度的一般答案:
每次遇到此错误,可能是因为内存泄漏或Node <= 10和Node> 10管理内存的方式之间的差异。通常,仅增加分配给Node的内存将使您的程序运行,但实际上可能无法解决真正的问题,并且可以再次达到内存限制。我建议您在节点进程开始运行或更新到节点> 10时在其进程中分析内存使用情况。
我发生了内存泄漏。
也就是说,要增加内存,请在运行Node进程的终端中:
export NODE_OPTIONS="--max-old-space-size=8192"
其中max-old-space-size
的值可以是:[2048, 4096, 8192, 16384]
等
[UPDATE]更多示例以进一步说明:
export NODE_OPTIONS="--max-old-space-size=5120" #increase to 5gb
export NODE_OPTIONS="--max-old-space-size=6144" #increase to 6gb
export NODE_OPTIONS="--max-old-space-size=7168" #increase to 7gb
export NODE_OPTIONS="--max-old-space-size=8192" #increase to 8gb
# and so on...
# formula:
export NODE_OPTIONS="--max-old-space-size=(X * 1024)" #increase to Xgb
# Note: it doesn't have to be multiples of 1024.
# max-old-space-size can be any number of memory megabytes(MB) you have available.
答案 1 :(得分:20)
我在Visual Studio代码中执行ng build
命令时遇到了相同的错误。但是,当我按以下顺序在Windows命令行中执行相同的操作时,我可以成功构建。
第1步。
set NODE_OPTIONS=--max_old_space_size=4096
第2步。
ng build
答案 2 :(得分:8)
请尝试在论坛上的旧消息中指出的解决方案:https://forum.ionicframework.com/t/3-7-0-ios-build-with-prod-not-working/107061/24
打开node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js
更改第一行:
#!/usr/bin/env node
到
#!/usr/bin/env node --max-old-space-size=4096
尝试将值设置为1024和2048,但对于相对较大的应用,则可能需要4096。
答案 3 :(得分:7)
由于某些原因,上述所有答案均对我不起作用,我做了以下工作来解决我的问题:
node_modules
文件夹npm install
答案 4 :(得分:5)
centos服务器7上的相同问题,但这解决了我的问题:
node --max_old_space_size=X node_modules/@angular/cli/bin/ng build --prod
X = (2048 or 4096 or 8192 o..)
是内存的值
答案 5 :(得分:5)
node --max_old_space_size = 4096 ./node_modules/@angular/cli/bin/ng build --prod --build-optimizer
添加参数--build-optimizer
解决了我的问题。
更新:
我不确定为什么只添加--build-optimizer可以解决问题,但是根据angular docs,应该在启用aot的情况下使用它,因此更新后的命令应如下所示
--build-optimizer=true --aot=true
答案 6 :(得分:5)
在我的情况下,这是一个递归,导致反应耗尽了所有内存。
这是在我重构代码时没有注意到的。
const SumComponent = () => {
return (
<>
<SumComponent />
</>
)
}
在其他节点应用中,它可能看起来像:
const someFunction = () => {
...
someFunction();
...
}
答案 7 :(得分:4)
对于我来说,请安装NodeJs 12.10.0版来解决此问题
答案 8 :(得分:4)
替换行
"start": "ng serve -o --port 4300 --configuration=en"
与
"start": "node --max_old_space_size=5096 node_modules/@angular/cli/bin/ng serve -o --port 4300 --configuration=en"
注意:
端口--4300不是恒定的,取决于您选择的端口。
-max_old_space_size = 5096也不恒定;任何值1024,2048,4096等
答案 9 :(得分:3)
当我在Visual Studio代码中执行以下语句时,我得到了相同的错误消息。但是当我在Windows命令行中执行相同的操作时,我可以成功构建。
npm install -g increase-memory-limit
increase-memory-limit
set NODE_OPTIONS=--max_old_space_size=4096
ng build -c deploy --build-optimizer --aot --prod --sourceMap
答案 10 :(得分:2)
我在 Angular 上遇到了同样的问题。然后我写了
"serve": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng serve"
这个脚本到 package.json
脚本,对我来说这个问题解决了。
并运行项目这个命令:
npm run serve
答案 11 :(得分:2)
对于那些从 angular
提出此问题并希望在您的 javascript
中解决此问题的人的非Google
一般 Dockerfile
答案(替换 {{1} } 与您要分配的 6144
中的内存量)。我的实现在 MB
中工作,由 node.js v14.1.0
使用 DockerOperator
中的 airflow v2.0.1
)
Docker version 20.10.5, build 55c4c88
答案 12 :(得分:2)
我没有使用 ng build
,而是在终端中执行以下命令来解决此问题。
node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod
然后做ng serve
。
这就是我的终端的样子
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS D:\ProjectPath\Project1> node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod
答案 13 :(得分:2)
另一个非角度的答案(我在使用AWS Amplify构建React应用程序时遇到了同样的问题。
如伊曼纽尔(Emmanuel)所说,这似乎是由于节点v10与节点v12处理内存的方式不同。
我试图增加内存,但无济于事。但是使用节点v12做到了。
按照@atlesp此处https://github.com/aws-amplify/amplify-console/issues/440#issuecomment-602626451的说明,检查如何向构建设置添加nvm use $VERSION_NODE_12
答案 14 :(得分:2)
node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --baseHref=/baseUrl/ --prod=true
答案 15 :(得分:1)
如果您在 Windows 上开发并在发布时遇到此问题,请通过官方网站升级 Node.js: https://nodejs.org/en/download/
内存使用处理确实随着 Node 的每个新版本而增加,尽管我没有找到增加的确切数字。
这是唯一对我有用的解决方案。我花了整整一个周末甚至更多时间才解决了这个问题。
答案 16 :(得分:1)
对我来说,问题是有一个额外的node_modules
文件夹,我将其重命名为node_modules_old
,然后运行npm install
来生成新的node_modules
。不知何故,该构建肯定仍然仍在拾取node_modules_old
文件夹,因此我将node_modules_old
从目录中移出来解决此问题。
答案 17 :(得分:1)
请检查您的节点版本:
$ node -v
如果它的版本为10.1.1,则需要通过以下命令更新根级节点版本
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
$ source ~/.nvm/nvm.sh
$ nvm ls
$ nvm install 12.18.1
完成后请重启终端或Visual Studio。
工作100美元
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
答案 18 :(得分:1)
在项目文件夹中运行此命令。使用服务代替构建
node --max_old_space_size=8000 node_modules/@angular/cli/bin/ng serve --prod --port=4202
答案 19 :(得分:1)
只需运行此命令
导出 NODE_OPTIONS="--max-old-space-size=8192"
答案 20 :(得分:0)
在为我的项目更新了所有库(如nodejs,打字稿,yarn,npm等)后,此问题消失了。
答案 21 :(得分:0)
对我来说,这是Firebase软件包的问题。
对于您的package.json,仅添加“ @ firebase / database”:“ 0.2.1”,重新安装node_modules即可。
答案 22 :(得分:0)
我在运行 angular 'ng serve' 时遇到了类似的问题 “致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足” 就我而言,我发现我的 angular 应用程序使用延迟加载,一个模块已经导入到自己的路由模块中,但有些人也将其导入到 app 模块中,这会导致递归吗?加载中。
这会导致内存不足。
希望能帮到人
答案 23 :(得分:0)
对我来说,我遇到语法错误(未显示)并导致了此错误。
答案 24 :(得分:0)
从节点12更新到节点14为我解决了这个问题
答案 25 :(得分:0)
只需在终端中键入以下内容:
some EN text,EN
some DE text,DE
some ES text,ES
答案 26 :(得分:0)
对我来说,出现此错误是因为我无法访问我的angular.json文件中设置的dist文件夹的输出路径。用更新的凭据重新连接到远程路径后,错误消失了。
答案 27 :(得分:0)
有时候,简单是成功的关键。搜索i
而不增加代码中的λ₀s
;)
答案 28 :(得分:0)
我想有很多方法可以解决此错误!
在我这边,我的User-agent: *
Disallow: /actions/
Disallow: /linkfilter/
Disallow: /tradeoffer/
Disallow: /trade/
Disallow: /email/
Host: steamcommunity.com
中有一个循环。项目A对项目B具有依赖性,而项目B对项目A具有依赖性。
答案 29 :(得分:0)
对我来说,删除所有工作后,我在React项目中运行eslint和更漂亮的修复程序并使用build
目录进行格式化时遇到了这个问题。
我猜这是因为文件太多。
答案 30 :(得分:0)
检查您的文件夹名称。如果您的文件夹名称中包含空格,则会产生此类问题。重命名不带空格。希望它能起作用。
答案 31 :(得分:0)
#!/ ionic / app-scripts.js dint工作中的/ usr / bin / env节点--max-old-space-size = 4096
修改
node_modules / .bin / ionic-app-scripts.cmd
通过添加:
@IF EXIST“%〜dp0 \ node.exe”( “%〜dp0 \ node.exe”“%〜dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js”%* )ELSE( @SETLOCAL @SET PATHEXT =%PATHEXT:;。JS; =;% 节点--max_old_space_size = 4096“%〜dp0 .. @ ionic \ app-scripts \ bin \ ionic-app-scripts.js”%* )
辛勤工作
答案 32 :(得分:0)
我已经删除了现有的节点模块,并运行以下命令来解决我的问题
npm install -all
npm audit fix
答案 33 :(得分:0)
如果在VSCode上运行React应用程序时发生这种情况,请检查您的propTypes,未定义的Proptypes会导致相同的问题。