Closed
Description
Describe the bug
Started a new Angular v19 project and am getting the following error in my LSP when importing eslint-plugin-perfectionist
:
error Cannot find module 'eslint-plugin-perfectionist' or its corresponding type declarations. typescript(2307)
There are types at '.../node_modules/eslint-plugin-perfectionist/dist/index.d.ts', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.
Code example
My eslint.config.js:
// @ts-check
const eslint = require('@eslint/js');
const tseslint = require('typescript-eslint');
const angular = require('angular-eslint');
const perfectionist = require('eslint-plugin-perfectionist');
module.exports = tseslint.config(
{
files: ['**/*.ts'],
extends: [
eslint.configs.all,
tseslint.configs.all,
perfectionist.configs['recommended-natural'],
],
languageOptions: {
parserOptions: {
projectService: true,
},
},
linterOptions: {
reportUnusedDisableDirectives: 'error',
},
processor: angular.processInlineTemplates,
},
);
ESLint version
v9.17.0
ESLint Plugin Perfectionist version
v4.6.0
Additional comments
My tsconfig:
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"esModuleInterop": true,
"experimentalDecorators": true,
"forceConsistentCasingInFileNames": true,
"importHelpers": true,
"isolatedModules": true,
"module": "ES2022",
"moduleResolution": "bundler",
"noFallthroughCasesInSwitch": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noPropertyAccessFromIndexSignature": true,
"noUncheckedIndexedAccess": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"outDir": "./dist/out-tsc",
"paths": {
"@app/*": ["./src/app/*"],
"@testing/*": ["./src/testing/*"]
},
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"target": "ES2022"
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictStandalone": true,
"strictTemplates": true
}
}
Validations
- Read the docs.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.