Skip to content

Reached heap limit Allocation failed - JavaScript heap out of memory #30538

Closed as not planned
@sysmat

Description

@sysmat

Command

lint

Is this a regression?

  • Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

19

Description

  1. If I run ng lint I get error
  2. If I run eslint --ext .ts,.html src it works fine

Minimal Reproduction

  • angular.json
"lint": {
          "builder": "@angular-eslint/builder:lint",
          "options": {
            "lintFilePatterns": ["src/**/*.ts", "src/**/*.html", "src/**/*.css"]
          }
        }
  • package.json
 "@angular-eslint/builder": "20.0.0",
    "@angular-eslint/eslint-plugin": "20.0.0",
    "@angular-eslint/eslint-plugin-template": "20.0.0",
    "@angular-eslint/schematics": "20.0.0",
    "@angular-eslint/template-parser": "20.0.0",
   "@eslint/compat": "^1.3.0",
    "@eslint/css": "^0.8.1",
    "@eslint/eslintrc": "^3.3.1",
    "@eslint/js": "^9.28.0",
    "@typescript-eslint/eslint-plugin": "8.34.0",
    "@typescript-eslint/parser": "8.34.0",
"eslint": "^9.28.0",
    "eslint-config-prettier": "^10.1.5",
    "eslint-plugin-import": "2.31.0",
    "eslint-plugin-jsdoc": "51.0.1",
    "eslint-plugin-prefer-arrow": "1.2.3",
    "eslint-plugin-prettier": "^5.4.1",
"prettier-eslint": "^16.4.2",
  • eslint.config.mjs
import angularEslint from '@angular-eslint/eslint-plugin';
import { fixupPluginRules } from '@eslint/compat';
import css from '@eslint/css';
import { FlatCompat } from '@eslint/eslintrc';
import js from '@eslint/js';
import typescriptEslint from '@typescript-eslint/eslint-plugin';
import _import from 'eslint-plugin-import';
import jsdoc from 'eslint-plugin-jsdoc';
import preferArrow from 'eslint-plugin-prefer-arrow';
import path from 'node:path';
import { fileURLToPath } from 'node:url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
  baseDirectory: __dirname,
  recommendedConfig: js.configs.recommended,
  allConfig: js.configs.all,
});

export default [
  {
    ignores: ['src/assets/css/arnes-bootstrap.css'],
  },
  {
    plugins: {
      import: fixupPluginRules(_import),
      jsdoc,
      'prefer-arrow': preferArrow,
      '@typescript-eslint': typescriptEslint,
      '@angular-eslint': angularEslint,
    },
  },
  ...compat
    .extends('plugin:@angular-eslint/template/process-inline-templates', 'plugin:prettier/recommended')
    .map(config => ({
      ...config,
      files: ['**/*.ts'],
    })),
  {
    files: ['**/*.ts'],
    languageOptions: {
      parserOptions: {
        project: ['tsconfig.json'],
        createDefaultProgram: true,
      },
    },
    rules: {
      '@typescript-eslint/consistent-type-definitions': 'error',
      '@typescript-eslint/no-deprecated': 'warn',
      '@typescript-eslint/dot-notation': 'off',
      '@typescript-eslint/explicit-member-accessibility': [
        'off',
        {
          accessibility: 'explicit',
        },
      ],
      'id-blacklist': 'off',
      'id-match': 'off',
      'no-underscore-dangle': 'off',
      '@typescript-eslint/naming-convention': 'off',
      '@typescript-eslint/member-ordering': 'off',
      'no-shadow': 'off',
      'prefer-arrow/prefer-arrow-functions': 'off',
      'arrow-body-style': 'off',
      'brace-style': ['off', '1tbs'],
      '@typescript-eslint/consistent-type-assertions': 'off',
      'jsdoc/newline-after-description': 'off',
      'jsdoc/tag-lines': [
        'warn',
        'never',
        {
          startLines: 1,
        },
      ],
    },
  },
  ...compat
    .extends('plugin:@angular-eslint/template/recommended', 'plugin:@angular-eslint/template/accessibility')
    .map(config => ({
      ...config,
      files: ['**/*.html'],
    })),
  {
    files: ['**/*.html'],
    rules: {
      '@angular-eslint/template/no-autofocus': 'off',
    },
  },
  {
    files: ['**/*.css'],
    language: 'css/css',
    ...css.configs.recommended,
    rules: {
      'css/use-baseline': 'warn',
    },
  },
];

Exception or Error

> ng lint


Linting "frontend"...

<--- Last few GCs --->

[54756:000002C3FDB45000]    61270 ms: Mark-Compact 4041.8 (4129.9) -> 4037.1 (4141.1) MB, pooled: 0 MB, 4031.72 / 0.03 ms  (average mu = 0.440, current mu = 0.061) allocation failure; scavenge might not succeed
[54756:000002C3FDB45000]    63813 ms: Mark-Compact 4054.2 (4142.4) -> 4048.3 (4153.6) MB, pooled: 0 MB, 2455.67 / 0.01 ms  (average mu = 0.312, current mu = 0.034) allocation failure; scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 00007FF673DE711D node::SetCppgcReference+17725
 2: 00007FF673D4A138 SSL_get_quiet_shutdown+92344
 3: 00007FF6748D0C51 v8::Isolate::ReportExternalAllocationLimitReached+65
 4: 00007FF6748BD8D6 v8::Function::Experimental_IsNopFunction+2870
 5: 00007FF67470AA20 v8::internal::StrongRootAllocatorBase::StrongRootAllocatorBase+31456
 6: 00007FF674707A8A v8::internal::StrongRootAllocatorBase::StrongRootAllocatorBase+19274
 7: 00007FF67471D2E1 v8::Isolate::GetHeapProfiler+7793
 8: 00007FF67471DB88 v8::Isolate::GetHeapProfiler+10008
 9: 00007FF67472E83B v8::Isolate::GetHeapProfiler+78795
10: 00007FF6743F772B v8::base::AddressSpaceReservation::AddressSpaceReservation+322075
11: 00007FF67498BFEE v8::PropertyDescriptor::writable+725966
12: 00007FF5F561E0B6

Your Environment

Angular CLI: 20.0.2
Node: 22.16.0
Package Manager: npm 10.9.2
OS: win32 x64

Angular: 20.0.3
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router, service-worker

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.2000.2
@angular-devkit/core         20.0.2
@angular-devkit/schematics   20.0.2
@angular/build               20.0.2
@angular/cli                 20.0.2
@schematics/angular          20.0.2
rxjs                         7.8.2
typescript                   5.8.3
zone.js                      0.15.1

Anything else relevant?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions