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

Bug: npm init @eslint/config with eslint-config-standard-with-typescript generates incorrect setup #1225

Closed
OnkelTem opened this issue Aug 19, 2023 · 3 comments

Comments

@OnkelTem
Copy link

Hello. I run npm init @eslint/config to get eslint setup. I go the following path:

$ npm init @eslint/config
✔ How would you like to use ESLint? · style
✔ What type of modules does your project use? · esm
✔ Which framework does your project use? · none
✔ Does your project use TypeScript? · No / Yes
✔ Where does your code run? · browser
✔ How would you like to define a style for your project? · guide
✔ Which style guide do you want to follow? · standard-with-typescript
✔ What format do you want your config file to be in? · JavaScript
Checking peerDependencies of eslint-config-standard-with-typescript@latest
Local ESLint installation not found.
The config that you've selected requires the following dependencies:

eslint-config-standard-with-typescript@latest @typescript-eslint/eslint-plugin@^5.52.0 eslint@^8.0.1 eslint-plugin-import@^2.25.2 eslint-plugin-n@^15.0.0 || ^16.0.0  eslint-plugin-promise@^6.0.0 typescript@*
✔ Would you like to install them now? · No / Yes
✔ Which package manager do you want to use? · npm
Installing eslint-config-standard-with-typescript@latest, @typescript-eslint/eslint-plugin@^5.52.0, eslint@^8.0.1, eslint-plugin-import@^2.25.2, eslint-plugin-n@^15.0.0 || ^16.0.0 , eslint-plugin-promise@^6.0.0, typescript@*

After it finishes, running eslint results to this error:

$ $npx eslint './src/**/*.ts'

Oops! Something went wrong! :(

ESLint: 8.47.0

Error: Error while loading rule '@typescript-eslint/dot-notation': You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.
Occurred while linting /projects/custom/eslint/tts/src/index.ts
    at getParserServices (/projects/custom/eslint/tts/node_modules/@typescript-eslint/utils/dist/eslint-utils/getParserServices.js:22:15)
    at create (/projects/custom/eslint/tts/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js:85:81)
    at Object.create (/projects/custom/eslint/tts/node_modules/@typescript-eslint/utils/dist/eslint-utils/RuleCreator.js:41:20)
    at createRuleListeners (/projects/custom/eslint/tts/node_modules/eslint/lib/linter/linter.js:870:21)
    at /projects/custom/eslint/tts/node_modules/eslint/lib/linter/linter.js:1040:110
    at Array.forEach (<anonymous>)
    at runRules (/projects/custom/eslint/tts/node_modules/eslint/lib/linter/linter.js:977:34)
    at Linter._verifyWithoutProcessors (/projects/custom/eslint/tts/node_modules/eslint/lib/linter/linter.js:1330:31)
    at Linter._verifyWithConfigArray (/projects/custom/eslint/tts/node_modules/eslint/lib/linter/linter.js:1706:21)
    at Linter.verify (/projects/custom/eslint/tts/node_modules/eslint/lib/linter/linter.js:1412:65)

I'm not really sure what makes this error happen - if it's at the eslint or this plugin side.

Node version: 16.17
npm version: 8.15
Local ESLint version: 8.47
Global ESLint version:
Operating System: Linux Ubuntu 22.04

@mightyiam
Copy link
Owner

Sorry for not responding earlier. Although this is not the best error message, this is not a bug in this project. All you need to do is to read this.

Good luck!

@OnkelTem
Copy link
Author

OnkelTem commented Aug 20, 2023

@mightyiam Sorry, I don't get it, what precisely from that link should explain the situation? I'm not asking how to fix the config (which is useful anyway, thanks).

Let me restart, please:

I run npm init @eslint/config

Which is the official wizard mentioned in the docs:

image

It is my understanding, that wizards shouldn't end up with the wrong configurations. This is mine btw:

module.exports = {
  env: {
    browser: true,
    es2021: true,
  },
  extends: ['standard-with-typescript', 'plugin:react/recommended'],
  overrides: [
    {
      env: {
        node: true,
      },
      files: ['.eslintrc.{js,cjs}'],
      parserOptions: {
        sourceType: 'script',
      },
    },
  ],
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
  },
  plugins: ['react'],
  rules: {},
};

Maybe I should have created this issue in the main eslint repo. Ok, let me do it.

UPDATE: eslint/create-config#71

@mightyiam
Copy link
Owner

Thank you. I will follow that one. There's likely a bunch of different ways in which the configuration created by that wizard could end up unsatisfactory...

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