在构建角度cli时做错误做什么 - 内存不足问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在构建角度cli时做错误做什么 - 内存不足问题相关的知识,希望对你有一定的参考价值。

"false"ng build --prod --aot false命令中做了什么

我正在开发一个使用ng cli开发的角度4应用程序,因为它是一个企业解决方案,应用程序变得如此庞大,以至于服务和构建需要太多时间。我甚至得到了javascript内存问题,我开始使用以下命令来构建应用程序

ng build --prod --aot false

但我不确定它是如何工作的

答案

所有可用的angular-cli命令都可以找到here

现在,当我们运行ng build --prod时,这意味着我们为我们的应用程序指定target

{
    name: 'target',
    type: String,
    default: 'development',
    aliases: ['t', { 'dev': 'development' }, { 'prod': 'production' }],
    description: 'Defines the build target.'
},

然后根据指定目标的angular-cli sets default options(angular-cli@1.4.x):

// Fill in defaults for build targets
public addTargetDefaults(buildOptions: T): T {
  const targetDefaults: { [target: string]: Partial<BuildOptions> } = {
    development: {
      environment: 'dev',
      outputHashing: 'media',
      sourcemaps: true,
      extractCss: false,
      namedChunks: true,
      aot: false
    },
    production: {
      environment: 'prod',
      outputHashing: 'all',
      sourcemaps: false,
      extractCss: true,
      namedChunks: false,
      aot: true
    }
  };

也可以在docs找到

添加--aot false时,您将覆盖默认的aot选项。因此它成为false

如果你有一些建设的问题,那么有some thread,其中常见的解决方案运行如下:

的package.json

"scripts": {
  "prod": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --prod" 
}

但除此之外,我更喜欢做一些重构代码来减少应用程序的大小,并帮助编译器更快地执行。

另一答案

对于生产版本,AOT默认为true,如果要停用,则可以使用:

ng build prod --no-aot 

要么

ng build prod --aot=false

但是使用AOT会在提供模板之前将模板编译为js,因此浏览器会非常快速地加载它们

以上是关于在构建角度cli时做错误做什么 - 内存不足问题的主要内容,如果未能解决你的问题,请参考以下文章

在角度 CLI 中出现构建错误:无法重新声明块范围变量“ngDevMode”

使用 cPanel 运行 CentOS 的 VPS 服务器上的 PHP CLI“内存不足”错误

构建树时PHP致命错误内存不足

启动角度项目时拒绝连接错误

致命错误:使用任何“npm”命令时 JavaScript 堆内存不足

构建 Angular 项目导致内存不足