发生未处理的异常:不能在没有'aot'的情况下使用'buildOptimizer'选项。

25
如果你在使用 ng build 或者 ng deploy 时遇到如下错误:An unhandled exception occurred: The 'buildOptimizer' option cannot be used without 'aot'.或其变体,那么以下的解决方法对我有效(向下滚动):
5个回答

46
  1. 进入你的angular.json文件
  2. 在该文件中,按照路径 projects -> architect -> build -> options 找到对应位置
  3. "buildOptimizer" 改为 true 并添加 "aot" 也改为 true

现在应该可以使用上述命令了。

补充说明: 如果你在执行 ng serveng test 时遇到该问题,你可以尝试将步骤2中的 build 替换为分别的 servetest(免责声明:我没有测试过)。


1
看起来有人忘记在我们的仓库中执行 ng update。 这对我们有帮助。 - Shafiq Jetha
在我们的情况下,我们需要删除 package-lock.json 和 node_modules,然后运行 npm i... - Zohar
1
没有一个对我有用。我从ng serve得到错误。 - canbax

11

当我从Angular 11升级到Angular 13时,在运行ng serve命令期间出现了这个错误。为了解决它,我创建了一个全新的Angular项目,并使用"@angular/cli"模仿了新项目中的angular.json

angular.jsonprojects>MY_PROJECT_NAME>architect>build>configurations中添加了一个带有JSON的development

"development": {
  "buildOptimizer": false,
  "optimization": false,
  "vendorChunk": true,
  "extractLicenses": false,
  "sourceMap": true,
  "namedChunks": true
}

添加了...serve>配置

"development": {
  "browserTarget": "hasap:build:development"
}

...serve> 后添加了 "defaultConfiguration": "development"

您可以从我的提交https://github.com/canbax/hasap/commit/9c0fc95fc244d35b2d7ee70c7048f6b38bd213b5中查看更改的详细信息


我在我的项目中遇到了同样的问题,通过在 angular.json 中使用不同的配置解决了它!非常感谢! - Camille

2

你需要在 angular.json 中启用 AOT 编译

将其更改为 true

构建{ "aot": true, ... }


1

我曾经遇到过这个错误信息,但是我的情况是在Angular项目中尝试设置Cypress。

我通过在angular.json文件中的projects.private-sellers-spa.architect.cypress-open.optionsprojects.private-sellers-spa.architect.cypress-run.options中添加以下配置来解决这个问题,具体如下:

"buildOptimizer": true,
"aot": true

0

我使用生产配置来运行我的项目

 ng serve -o --ssl true --configuration production

这将使用buildOptimizer和aot问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接