当我使用Ionic serve命令运行Ionic 3项目时,我会得到这个错误:
当前回答
如果你在Windows上开发,在发布时遇到这个问题,请通过官方网站升级Node.js。
每更新一个Node.js版本,内存使用处理都会增加,尽管我没有找到确切的增加数字。
这是唯一对我有效的解决办法。我花了整整一个周末甚至更长的时间才解决这个问题。
其他回答
另一个非angular的答案(我在AWS Amplify上构建React应用时也遇到了同样的问题)。
正如Emmanuel所提到的,这似乎来自Node.js v10和Node.js v12处理内存的方式的差异。
我试着增加记忆,但没有用。但是使用Node.js v12做到了。
根据richard的解释,检查如何将nvm use $VERSION_NODE_12添加到构建设置中
前端: 阶段: preBuild: 命令: - nvm使用$VERSION_NODE_12 - NPM ci 构建: 命令: - nvm使用$VERSION_NODE_12 - node -v - NPM运行脚本构建
添加参数——build-optimizer解决了我的问题:
Node——max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build——prod——构建优化器
我不知道为什么添加only——build-optimizer可以解决这个问题,但根据Angular文档,它应该在启用AOT编译的情况下使用,所以更新后的命令应该如下所示:
--build-optimizer=true --aot=true
Angular构建文档
在我的例子中,错误是由于在for中不恰当地使用条件引起的。循环。而不是:
for (let t = startNo; t <= endNo; t++) {}
我有:
for (let t = startNo; endNo; t++) {}
从Node.js 12更新到Node.js 14为我解决了这个问题。
现在更新Node.js 16可用,我建议更新到Node.js的最新可用版本。
试试这个解决方案,在论坛上的一个旧消息中指出:3.7.0:iOS build with——prod无法工作
打开node_modules / @ionic / app-scripts / bin / ionic-app-scripts.js
将第一行改为:
#!/usr/bin/env node
to
#!/usr/bin/env node --max-old-space-size=4096
尝试1024和2048的值,但对于一个相对较大的应用程序,你可能需要4096。
推荐文章
- jQuery中的live()转换为on()
- 如何区分鼠标的“点击”和“拖动”
- IE9是否支持console.log,它是一个真实的功能吗?
- Node.js同步执行系统命令
- 如何转义JSON字符串包含换行字符使用JavaScript?
- jQuery等价于JavaScript的addEventListener方法
- jQuery需要避免的陷阱
- JavaScript中变量字符串的XML解析
- 'React'指的是一个UMD全局,但当前文件是一个模块
- 为什么useState不触发重新渲染?
- 如何使用回调与useState挂钩在反应
- 网络请求失败
- 如何使用JavaScript大写字符串中每个单词的第一个字母?
- 如何使用箭头函数(公共类字段)作为类方法?
- 使用Javascript的atob解码base64不能正确解码utf-8字符串