Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory #115

Closed
kambbado opened this issue Aug 4, 2020 · 6 comments

Comments

@kambbado
Copy link

kambbado commented Aug 4, 2020

Has anyone experience this issue?

Ran command: npm run lint

Configuration in Package.json:
"lint": "ng lint",

<--- Last few GCs --->
 f[30872:00000248EB096DB0]    66390 ms: Mark-sweep 2045.1 (2057.5) -> 2042.0 (2060.5) MB, 137.2 / 0.0 ms  (+ 445.3 ms in 101 steps since start of marking, biggest step 9.1 ms, walltime since start of marking 616 ms) (average mu = 0.166, current mu = 0.054) [30872:00000248EB096DB0]    67007 ms: Mark-sweep 2048.5 (2061.0) -> 2043.0 (2058.8) MB, 133.3 / 0.0 ms  (+ 427.1 ms in 94 steps since start of marking, biggest step 8.8 ms, walltime since start of marking 617 ms) (average mu = 0.131, current mu = 0.092) f

<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 00007FF63BF76C4D]
Security context: 0x0014822008d1 <JSObject>
    1: declareSymbol(aka declareSymbol) [000000AB0E81C299] [C:MyApp\node_modules\typescript\lib\typescript.js:~31012] [pc=00000213B6473474](this=0x02727f5404b1 <undefined>,0x00d90be6bd01 <Map map = 00000133FB4C09D9>,0x02727f5404b1 <undefined>,0x01bd2e47db99 <NodeObject map = 0000007D4C5195C9>,1,111551...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Writing Node.js report to file: report.20200804.070337.30872.0.001.json
Node.js report completed
 1: 00007FF63B36D1EF napi_wrap+113103
 2: 00007FF63B30CA66 public: bool __cdecl v8::base::CPU::has_sse(void)const __ptr64+64982
 3: 00007FF63B30D8F3 public: bool __cdecl v8::base::CPU::has_sse(void)const __ptr64+68707
 4: 00007FF63BB29BBE private: void __cdecl v8::Isolate::ReportExternalAllocationLimitReached(void) __ptr64+94
 5: 00007FF63BB11C91 public: class v8::SharedArrayBuffer::Contents __cdecl v8::SharedArrayBuffer::Externalize(void) __ptr64+833
 6: 00007FF63B9DE1EC public: static void __cdecl v8::internal::Heap::EphemeronKeyWriteBarrierFromCode(unsigned __int64,unsigned __int64,class v8::internal::Isolate * __ptr64)+1436
 7: 00007FF63B9E9420 public: void __cdecl v8::internal::Heap::ProtectUnprotectedMemoryChunks(void) __ptr64+1312
 8: 00007FF63B9E5F44 public: static bool __cdecl v8::internal::Heap::PageFlagsAreConsistent(class v8::internal::HeapObject)+3204
 9: 00007FF63B9DB743 public: bool __cdecl v8::internal::Heap::CollectGarbage(enum v8::internal::AllocationSpace,enum v8::internal::GarbageCollectionReason,enum v8::GCCallbackFlags) __ptr64+1283
10: 00007FF63B9D9DB4 public: void __cdecl v8::internal::Heap::AddRetainedMap(class v8::internal::Handle<class v8::internal::Map>) __ptr64+2452
11: 00007FF63B9FAFBD public: class v8::internal::Handle<class v8::internal::HeapObject> __cdecl v8::internal::Factory::NewFillerObject(int,bool,enum v8::internal::AllocationType,enum v8::internal::AllocationOrigin) __ptr64+61
12: 00007FF63B7616FF public: class v8::internal::interpreter::JumpTableTargetOffsets::iterator & __ptr64 __cdecl v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=(class v8::internal::interpreter::JumpTableTargetOffsets::iterator && __ptr64) __ptr64+1295
13: 00007FF63BF76C4D public: virtual bool __cdecl v8::internal::SetupIsolateDelegate::SetupHeap(class v8::internal::Heap * __ptr64) __ptr64+546637
14: 00000213B6473474
@kambbado
Copy link
Author

kambbado commented Aug 4, 2020

Upgrade to nodejs v12.18.3 and resolved the issue.

@kambbado kambbado closed this as completed Aug 4, 2020
@kambbado
Copy link
Author

kambbado commented Aug 4, 2020

Still having the issue when running ng lint, I first thought is as the node version.

Let me know if there is something I can try to help if this is a bug or if it's my configuration.

tsconfig.eslint.json
{ "extends": "./tsconfig.base.json", "include": ["src/**/*.ts", "projects/**/*.ts"] }

angular.json

 "lint": {
                    "builder": "@angular-eslint/builder:lint",
                    "options": {
                        "eslintConfig": ".eslintrc.js",
                        "tsConfig": ['./tsconfig.eslint.json'],
                        "exclude": [
                            "**/node_modules/**"
                        ]
                    }
                }

@kambbado kambbado reopened this Aug 4, 2020
@kambbado
Copy link
Author

kambbado commented Aug 4, 2020

running ng lint as node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng lint helped.

Now, I'm facing another issue which I cannot seem to fix it. I'm getting the following error

**preprocess: ERROR could not parse @Component() metadata**

@kambbado
Copy link
Author

kambbado commented Aug 4, 2020

If I comment out the override rules for files: ['*.component.html'] and files: ['*.component.ts'] and run ng lint it hangs.

module.exports = {
    env: {
        'browser': true,
        'es6': true,
        'serviceworker': true
    },
    ignorePatterns: ['**/*.js'],
    extends: [
        'eslint:recommended',
        'plugin:@typescript-eslint/recommended',
        'plugin:@typescript-eslint/recommended-requiring-type-checking',
        'plugin:@angular-eslint/recommended',
        'prettier',
        'prettier/@typescript-eslint'
    ],
    parser: '@typescript-eslint/parser',
    plugins: [
        '@typescript-eslint',
        '@angular-eslint',
        '@angular-eslint/template',
        'prettier'
    ],
    parserOptions: {
        ecmaVersion: 2020,
        sourceType: 'module',
        project: ['./tsconfig.**.json'],
        tsconfigRootDir: __dirname,
        warnOnUnsupportedTypeScriptVersion: false
    },
    rules: {
        '@typescript-eslint/explicit-module-boundary-types': 'off',
        '@typescript-eslint/prefer-includes': 'off',
        'prettier/prettier': [
            'error', {
                'parser': 'typescript',
                'semi': true,
                'singleQuote': true,
                'tabWidth': 2,
                'trailingComma': 'none',
                'bracketSpacing': true,
                'jsxBracketSameLine': false,
                'endOfLine': 'auto',
            }
        ],
    },
    overrides: [{
            files: ['*.ts'],
            extends: [
                'plugin:@typescript-eslint/recommended-requiring-type-checking',
                'plugin:@angular-eslint/recommended',
            ],
            parser: '@typescript-eslint/parser',
            parserOptions: {
                ecmaVersion: 2020,
                sourceType: 'module',
                project: ['./tsconfig.**.json', './projects/*/tsconfig.**.json'],
                tsconfigRootDir: __dirname,
                warnOnUnsupportedTypeScriptVersion: false
            },
            plugins: ['@typescript-eslint', '@angular-eslint'],
            rules: {
                'max-len': ['error', {
                        'code': 240
                    }
                ],
                '@angular-eslint/component-class-suffix': 'error',
                '@angular-eslint/directive-selector': [
                    'error', {
                        type: 'attribute',
                        prefix: 'app',
                        style: 'camelCase'
                    },
                ],
                '@angular-eslint/contextual-lifecycle': 'error',
                '@angular-eslint/directive-class-suffix': 'error',
                '@angular-eslint/component-selector': [
                    'error', {
                        type: 'element',
                        prefix: 'app',
                        style: 'kebab-case'
                    },
                ],
                '@angular-eslint/no-conflicting-lifecycle': 'error',
                '@angular-eslint/no-host-metadata-property': 'error',
                '@angular-eslint/no-input-rename': 'off',
                '@angular-eslint/no-inputs-metadata-property': 'error',
                '@angular-eslint/no-output-native': 'off',
                '@angular-eslint/no-output-on-prefix': 'off',
                '@angular-eslint/no-output-rename': 'off',
                '@angular-eslint/no-outputs-metadata-property': 'error',
                '@angular-eslint/template/banana-in-box': 'off',
                '@angular-eslint/template/no-negated-async': 'off',
                '@angular-eslint/use-lifecycle-interface': 'error',
                '@angular-eslint/use-pipe-transform-interface': 'error',
                '@typescript-eslint/array-type': 'off',

                '@typescript-eslint/ban-types': [
                    'warn', {
                        types: {
                            Object: {
                                message: 'Avoid using the `Object` type. Did you mean `object`?',
                            },
                            Function: {
                                message: 'Avoid using the `Function` type. Prefer a specific function type, like `() => void`.',
                            },
                            Boolean: {
                                message: 'Avoid using the `Boolean` type. Did you mean `boolean`?',
                            },
                            Number: {
                                message: 'Avoid using the `Number` type. Did you mean `number`?',
                            },
                            String: {
                                message: 'Avoid using the `String` type. Did you mean `string`?',
                            },
                            Symbol: {
                                message: 'Avoid using the `Symbol` type. Did you mean `symbol`?',
                            },
                        },
                    },
                ],
                '@typescript-eslint/consistent-type-definitions': 'error',
                '@typescript-eslint/dot-notation': 'off',
                '@typescript-eslint/explicit-member-accessibility': [
                    'off', {
                        accessibility: 'explicit',
                    },
                ],
                '@typescript-eslint/interface-name-prefix': 'off',
                '@typescript-eslint/member-delimiter-style': [
                    'off', {
                        multiline: {
                            delimiter: 'none',
                            requireLast: true,
                        },
                        singleline: {
                            delimiter: 'semi',
                            requireLast: false,
                        },
                    },
                ],
                '@typescript-eslint/member-ordering': 'off',
                '@typescript-eslint/no-empty-function': 'off',
                '@typescript-eslint/no-explicit-any': 'off',
                '@typescript-eslint/no-non-null-assertion': 'error',
                '@typescript-eslint/no-parameter-properties': 'off',
                '@typescript-eslint/no-unused-expressions': 'error',
                '@typescript-eslint/no-var-requires': 'off',
                '@typescript-eslint/prefer-for-of': 'off',
                '@typescript-eslint/prefer-function-type': 'off',
                '@typescript-eslint/semi': ['off', null],
                '@typescript-eslint/triple-slash-reference': [
                    'error', {
                        path: 'always',
                        types: 'prefer-import',
                        lib: 'always',
                    },
                ],
                '@typescript-eslint/type-annotation-spacing': 'off',
                '@typescript-eslint/unified-signatures': 'error',
                '@typescript-eslint/explicit-function-return-type': 'off',

                '@typescript-eslint/await-thenable': 'off',
                '@typescript-eslint/no-unused-vars': 'off',
                '@typescript-eslint/unbound-method': 'off',
                '@typescript-eslint/no-namespace': 'off',

                '@typescript-eslint/no-unsafe-assignment': 'off',
                '@typescript-eslint/no-unsafe-member-access': 'off',
                '@typescript-eslint/no-unsafe-call': 'off',
                '@typescript-eslint/no-floating-promises': 'off',
                '@typescript-eslint/no-unsafe-return': 'off',

                'no-debugger': 'error',
                'no-empty': 'off',
                'no-eval': 'error',
                'no-fallthrough': 'error',
                'no-invalid-this': 'off',
                'no-irregular-whitespace': 'off',
                'no-new-wrappers': 'error',

                'no-restricted-imports': [
                    'error', {
                        'paths': [
                            'rxjs/Rx',
                            'rxjs/internal/operators',
                            'rxjs/internal'
                        ]
                    }
                ],
                '@typescript-eslint/no-use-before-define': 'off',
                '@typescript-eslint/no-unused-expressions': 'off',
                '@typescript-eslint/camelcase': 'off',
                '@typescript-eslint/restrict-plus-operands': 'off',
				'@angular-eslint/component-selector': 'off'
            }
        }, {
            files: ['*.d.ts', '*.svg.ts', '**/iav/**/*.ts', '**/iav/**/*.js'],
            parser: '@typescript-eslint/parser',
            plugins: ['@angular-eslint/template'],
            processor: '@angular-eslint/template/extract-inline-html',
            parserOptions: {
                ecmaVersion: 2020,
                sourceType: 'module',
                project: ['./tsconfig.**.json'],
                tsconfigRootDir: __dirname
            },
            rules: {
                'max-len': ['error', {
                        'code': 500
                    }
                ],
                'no-redeclare': 'off',
                'no-undef': 'off',
                'no-prototype-builtins': 'off',
                'no-var': 'off',
                'no-inner-declarations': 'off',
                '@typescript-eslint/no-empty-interface': 'off',
                '@typescript-eslint/no-namespace': 'off',
                '@typescript-eslint/consistent-type-assertions': 'off',
                '@typescript-eslint/unified-signatures': 'off',

                'no-dupe-class-members': 'off',
                'prefer-spread': 'off',
                '@typescript-eslint/explicit-function-return-type': 'off',
                '@typescript-eslint/no-use-before-define': 'off',
                '@angular-eslint/component-selector': 'off',
                '@typescript-eslint/prefer-namespace-keyword': 'off',
                '@typescript-eslint/no-inferrable-types': 'off',
                '@typescript-eslint/prefer-string-starts-ends-with': 'off',
                '@typescript-eslint/prefer-includes': 'off',

                'prettier/prettier': 'off',
                'prefer-const': 'off'
            }
        // }, {
            // files: ['*.component.ts'],
            // parser: '@typescript-eslint/parser',
            // plugins: ['@angular-eslint/template',
                // 'prettier',
            // ],
            // processor: '@angular-eslint/template/extract-inline-html',
            // parserOptions: {
                // ecmaVersion: 2020,
                // sourceType: 'module',
                // project: ['./tsconfig.**.json'],
                // tsconfigRootDir: __dirname
            // },
            // rules: {
                // '@angular-eslint/component-selector': 'off'

            // }
        }, {
            // prettier
            "files": ["*.ts", "*.json"],
            "extends": ["plugin:prettier/recommended"]
        }
		// , {
            // files: ['*.component.html'],
            // parser: '@angular-eslint/template-parser',
            // plugins: ['@angular-eslint/template'],
            // parserOptions: {
                // ecmaVersion: 2020,
                // sourceType: 'module',
                // project: ['./tsconfig.**.json'],
                // tsconfigRootDir: __dirname,
                // warnOnUnsupportedTypeScriptVersion: false
            // },
            // rules: {
                // '@angular-eslint/template/banana-in-a-box': 'off',
                // '@angular-eslint/template/cyclomatic-complexity': 'off',
                // '@angular-eslint/template/no-call-expression': 'off',
                // '@angular-eslint/template/no-negated-async': 'off',
                // '@typescript-eslint/no-misused-promises': 'off',
                // '@typescript-eslint/no-unnecessary-type-assertion': 'off',
                // '@typescript-eslint/await-thenable': 'off',
                // '@typescript-eslint/prefer-regexp-exec': 'off',
                // '@typescript-eslint/prefer-string-starts-ends-with': 'off',
                // '@typescript-eslint/require-await': 'off',
                // '@typescript-eslint/unbound-method': 'off',
                // '@typescript-eslint/no-floating-promises': 'off',
                // '@typescript-eslint/no-implied-eval': 'off',
                // '@typescript-eslint/no-unsafe-assignment': 'off',
				// '@typescript-eslint/no-unsafe-call': 'off',
				// '@typescript-eslint/no-unsafe-member-access': 'off',
				 // '@typescript-eslint/no-unsafe-return':  'off',
				 // '@typescript-eslint/restrict-plus-operands': 'off',
				 // '@typescript-eslint/restrict-template-expressions': 'off',

                // '@angular-eslint/template/i18n': [
                    // 'error', {
                        // 'checkId': false,
                        // 'checkText': true,
                        // 'checkAttributes': true,
                        // 'ignoreAttributes': [
                            // 'field',
                            // 'identifier'
                        // ]
                    // }
                // ]
            // }
        // }
    ]
};

@kambbado
Copy link
Author

kambbado commented Aug 5, 2020

Here's my work eslintrc.js file and configuration that is working,

package.json

"scripts": {
....
"lint": "node --max_old_space_size=10240 ./node_modules/@angular/cli/bin/ng lint",
}

angular.json

"lint": {
                    "builder": "@angular-eslint/builder:lint",
                    "options": {
                        "eslintConfig": ".eslintrc.js",
                        "tsConfig": ['./tsconfig.eslint.json'],
                        "exclude": [
                            "**/node_modules/**"
                        ]
                    }
                }

.eslintrc.js I had to comment out the override for files: ['*.component.ts'] in order to get lint to work


module.exports = {
    env: {
        'browser': true,
        'es6': true,
        'serviceworker': true
    },
    ignorePatterns: ['**/*.js'],
    extends: [
        'eslint:recommended',
        'plugin:@typescript-eslint/recommended',
        'plugin:@typescript-eslint/recommended-requiring-type-checking',
        'plugin:@angular-eslint/recommended',
        'prettier',
        'prettier/@typescript-eslint'
    ],
    parser: '@typescript-eslint/parser',
    plugins: [
        '@typescript-eslint',
        '@angular-eslint',
        '@angular-eslint/template',
        'prettier'
    ],
    parserOptions: {
        ecmaVersion: 2020,
        sourceType: 'module',
        project: ['./tsconfig.**.json'],
        tsconfigRootDir: __dirname,
        warnOnUnsupportedTypeScriptVersion: false
    },
    rules: {
        '@typescript-eslint/explicit-module-boundary-types': 'off',
        '@typescript-eslint/prefer-includes': 'off',

        // 'prettier/prettier': 'off',

        'prettier/prettier': [
            'error', {
                printWidth: 200,
                trailingComma: "none",
                singleQuote: true,
                bracketSpacing: true,
                jsxBracketSameLine: false,
                parser: "typescript",
                useTabs: false,
                tabWidth: 2,
                arrowParens: "always",
                endOfLine: "auto",
                htmlWhitespaceSensitivity: "ignore",
                insertPragma: false,
                jsxSingleQuote: false,
                proseWrap: "preserve",
                quoteProps: "as-needed",
                requirePragma: false,
                semi: true,
                overrides: [{
                        files: ".json",
                        options: {
                            parser: "json"
                        }
                    }, {
                        files: "*.html",
                        options: {
                            parser: "angular"
                        }
                    }, {
                        files: "*.ts",
                        options: {
                            parser: "typescript"
                        }
                    }
                ]
            }
        ],
    },
    overrides: [{
            files: ['*.ts'],
            extends: [
                'plugin:@typescript-eslint/recommended-requiring-type-checking',
                'plugin:@angular-eslint/recommended',
            ],
            parser: '@typescript-eslint/parser',
            parserOptions: {
                ecmaVersion: 2020,
                sourceType: 'module',
                project: ['./tsconfig.**.json', './projects/*/tsconfig.**.json'],
                tsconfigRootDir: __dirname,
                warnOnUnsupportedTypeScriptVersion: false
            },
            plugins: ['@typescript-eslint', '@angular-eslint'],
            rules: {
                'max-len': ['error', {
                        'code': 180,
                        "comments": 240,
                        "ignoreUrls": true,
                        "ignoreComments": true,
                        "ignoreStrings": true,
                        "ignoreTrailingComments": true,
                        "ignoreTemplateLiterals": true,
                        "ignoreRegExpLiterals": true
                    }
                ],
                '@angular-eslint/component-class-suffix': 'error',
                '@angular-eslint/directive-selector': [
                    'error', {
                        type: 'attribute',
                        prefix: 'app',
                        style: 'camelCase'
                    },
                ],
                '@angular-eslint/contextual-lifecycle': 'error',
                '@angular-eslint/directive-class-suffix': 'error',
                '@angular-eslint/component-selector': [
                    'error', {
                        type: 'element',
                        prefix: 'app',
                        style: 'kebab-case'
                    },
                ],
                '@angular-eslint/no-conflicting-lifecycle': 'error',
                '@angular-eslint/no-host-metadata-property': 'error',
                '@angular-eslint/no-input-rename': 'off',
                '@angular-eslint/no-inputs-metadata-property': 'error',
                '@angular-eslint/no-output-native': 'off',
                '@angular-eslint/no-output-on-prefix': 'off',
                '@angular-eslint/no-output-rename': 'off',
                '@angular-eslint/no-outputs-metadata-property': 'error',
                '@angular-eslint/template/banana-in-box': 'off',
                '@angular-eslint/template/no-negated-async': 'off',
                '@angular-eslint/use-lifecycle-interface': 'error',
                '@angular-eslint/use-pipe-transform-interface': 'error',
                '@typescript-eslint/array-type': 'off',

                '@typescript-eslint/ban-types': [
                    'off', {
                        types: {
                            Object: {
                                message: 'Avoid using the `Object` type. Did you mean `object`?',
                            },
                            Function: {
                                message: 'Avoid using the `Function` type. Prefer a specific function type, like `() => void`.',
                            },
                            Boolean: {
                                message: 'Avoid using the `Boolean` type. Did you mean `boolean`?',
                            },
                            Number: {
                                message: 'Avoid using the `Number` type. Did you mean `number`?',
                            },
                            String: {
                                message: 'Avoid using the `String` type. Did you mean `string`?',
                            },
                            Symbol: {
                                message: 'Avoid using the `Symbol` type. Did you mean `symbol`?',
                            },
                        },
                    },
                ],
                '@typescript-eslint/consistent-type-definitions': 'error',
                '@typescript-eslint/dot-notation': 'off',
                '@typescript-eslint/explicit-member-accessibility': [
                    'off', {
                        accessibility: 'explicit',
                    },
                ],
                '@typescript-eslint/interface-name-prefix': 'off',
                '@typescript-eslint/member-delimiter-style': [
                    'off', {
                        multiline: {
                            delimiter: 'none',
                            requireLast: true,
                        },
                        singleline: {
                            delimiter: 'semi',
                            requireLast: false,
                        },
                    },
                ],
                '@typescript-eslint/member-ordering': 'off',
                '@typescript-eslint/no-empty-function': 'off',
                '@typescript-eslint/no-explicit-any': 'off',
                '@typescript-eslint/no-non-null-assertion': 'error',
                '@typescript-eslint/no-parameter-properties': 'off',
                '@typescript-eslint/no-unused-expressions': 'error',
                '@typescript-eslint/no-var-requires': 'off',
                '@typescript-eslint/prefer-for-of': 'off',
                '@typescript-eslint/prefer-function-type': 'off',
                '@typescript-eslint/semi': ['off', null],
                '@typescript-eslint/triple-slash-reference': [
                    'error', {
                        path: 'always',
                        types: 'prefer-import',
                        lib: 'always',
                    },
                ],
                '@typescript-eslint/type-annotation-spacing': 'off',
                '@typescript-eslint/unified-signatures': 'error',
                '@typescript-eslint/explicit-function-return-type': 'off',

                '@typescript-eslint/await-thenable': 'off',
                '@typescript-eslint/no-unused-vars': 'off',
                '@typescript-eslint/unbound-method': 'off',
                '@typescript-eslint/no-namespace': 'off',

                '@typescript-eslint/no-unsafe-assignment': 'off',
                '@typescript-eslint/no-unsafe-member-access': 'off',
                '@typescript-eslint/no-unsafe-call': 'off',
                '@typescript-eslint/no-floating-promises': 'off',
                '@typescript-eslint/no-unsafe-return': 'off',

                'no-debugger': 'error',
                'no-empty': 'off',
                'no-eval': 'error',
                'no-fallthrough': 'error',
                'no-invalid-this': 'off',
                'no-irregular-whitespace': 'off',
                'no-new-wrappers': 'error',
                'no-useless-escape': 'off',

                'no-restricted-imports': [
                    'error', {
                        'paths': [
                            'rxjs/Rx',
                            'rxjs/internal/operators',
                            'rxjs/internal'
                        ]
                    }
                ],
                '@typescript-eslint/no-use-before-define': 'off',
                '@typescript-eslint/no-unused-expressions': 'off',
                '@typescript-eslint/camelcase': 'off',
                '@typescript-eslint/restrict-plus-operands': 'off',
                '@angular-eslint/component-selector': 'off',
                '@angular-eslint/directive-selector': 'off',
                '@typescript-eslint/restrict-template-expressions': 'off',
            }
        }, {
            files: ['*.d.ts', '*.svg.ts', '**/iav/**/*.ts', '**/iav/**/*.js'],
            parser: '@typescript-eslint/parser',
            plugins: ['@angular-eslint/template'],
            processor: '@angular-eslint/template/extract-inline-html',
            parserOptions: {
                ecmaVersion: 2020,
                sourceType: 'module',
                project: ['./tsconfig.**.json'],
                tsconfigRootDir: __dirname
            },
            rules: {
                'max-len': ['error', {
                        'code': 500
                    }
                ],
                'no-redeclare': 'off',
                'no-undef': 'off',
                'no-prototype-builtins': 'off',
                'no-var': 'off',
                'no-inner-declarations': 'off',
                '@typescript-eslint/no-empty-interface': 'off',
                '@typescript-eslint/no-namespace': 'off',
                '@typescript-eslint/consistent-type-assertions': 'off',
                '@typescript-eslint/unified-signatures': 'off',

                'no-dupe-class-members': 'off',
                'prefer-spread': 'off',
                '@typescript-eslint/explicit-function-return-type': 'off',
                '@typescript-eslint/no-use-before-define': 'off',
                '@angular-eslint/component-selector': 'off',
                '@typescript-eslint/prefer-namespace-keyword': 'off',
                '@typescript-eslint/no-inferrable-types': 'off',
                '@typescript-eslint/prefer-string-starts-ends-with': 'off',
                '@typescript-eslint/prefer-includes': 'off',

                'prettier/prettier': 'off',
                'prefer-const': 'off'
            }
            // }, {
            // files: ['*.component.ts'],
            // parser: '@typescript-eslint/parser',
            // plugins: ['@angular-eslint/template',
            // 'prettier',
            // ],
            // processor: '@angular-eslint/template/extract-inline-html',
            // parserOptions: {
            // ecmaVersion: 2020,
            // sourceType: 'module',
            // project: ['./tsconfig.**.json'],
            // tsconfigRootDir: __dirname
            // },
            // rules: {
            // '@angular-eslint/component-selector': 'off'

            // }
        }, {
            files: ['*.component.html'],
            parser: '@angular-eslint/template-parser',
            plugins: ['@angular-eslint/template'],
            parserOptions: {
                ecmaVersion: 2020,
                sourceType: 'module',
                project: ['./tsconfig.**.json'],
                tsconfigRootDir: __dirname,
                warnOnUnsupportedTypeScriptVersion: false
            },
            rules: {
                '@angular-eslint/template/banana-in-a-box': 'off',
                '@angular-eslint/template/cyclomatic-complexity': 'off',
                '@angular-eslint/template/no-call-expression': 'off',
                '@angular-eslint/template/no-negated-async': 'off',
                '@typescript-eslint/no-misused-promises': 'off',
                '@typescript-eslint/no-unnecessary-type-assertion': 'off',
                '@typescript-eslint/await-thenable': 'off',
                '@typescript-eslint/prefer-regexp-exec': 'off',
                '@typescript-eslint/prefer-string-starts-ends-with': 'off',
                '@typescript-eslint/require-await': 'off',
                '@typescript-eslint/unbound-method': 'off',
                '@typescript-eslint/no-floating-promises': 'off',
                '@typescript-eslint/no-implied-eval': 'off',
                '@typescript-eslint/no-unsafe-assignment': 'off',
                '@typescript-eslint/no-unsafe-call': 'off',
                '@typescript-eslint/no-unsafe-member-access': 'off',
                '@typescript-eslint/no-unsafe-return': 'off',
                '@typescript-eslint/restrict-plus-operands': 'off',
                '@typescript-eslint/restrict-template-expressions': 'off',
				'prettier/prettier': 'off',
            }
        }
    ]
};

@kambbado kambbado closed this as completed Aug 5, 2020
@JamesHenry
Copy link
Member

I'm sorry about the OOM issues @kambbado - please can you migrate to v0.2.0-beta.1? It was added in #120

It is a major change to address specifically the issues you have mentioned. You will see that the integration-tests now include lots of separate projects (and you can also see in there how different the config now is).

There is a schematic available now in that same PR to take a current Angular CLI project and convert it to the appropriate configuration.

If you still have issues with v0.2.0-beta.1 please open a fresh issue with as much information as possible.

Thanks all 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants