diff --git a/eslint.config.js b/eslint.config.js index e248a20a..f0886be4 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -6,6 +6,15 @@ import prettierConfig from 'eslint-config-prettier'; import prettierPlugin from 'eslint-plugin-prettier'; import globals from 'globals'; +// projectService reloads every TS project when this value changes between TS and Vue files. +const extraFileExtensions = ['.vue']; +const typedParserOptions = { + extraFileExtensions, + jsDocParsingMode: 'none', + projectService: true, + tsconfigRootDir: import.meta.dirname, +}; + export default tseslint.config( { ignores: [ @@ -39,11 +48,9 @@ export default tseslint.config( languageOptions: { parser: vueParser, parserOptions: { + ...typedParserOptions, parser: tseslint.parser, - extraFileExtensions: ['.vue'], sourceType: 'module', - projectService: true, - tsconfigRootDir: import.meta.dirname, }, }, rules: { @@ -55,10 +62,7 @@ export default tseslint.config( files: ['**/*.ts', '**/*.tsx'], languageOptions: { parser: tseslint.parser, - parserOptions: { - projectService: true, - tsconfigRootDir: import.meta.dirname, - }, + parserOptions: typedParserOptions, }, }, { diff --git a/package.json b/package.json index 26684de4..1c4a1934 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "version": "0.0.0", "packageManager": "pnpm@11.21.0", "scripts": { - "lint": "turbo lint", - "lint:fix": "turbo lint:fix", + "lint": "NODE_OPTIONS=--max-old-space-size=1024 turbo lint --concurrency=1", + "lint:fix": "NODE_OPTIONS=--max-old-space-size=1024 turbo lint:fix --concurrency=1", "format": "prettier --write .", "test": "turbo test --ui=stream --output-logs=errors-only", "test-verbose": "SAMMO_TEST_REPORTER=verbose turbo test --ui=stream --output-logs=full",