-
Notifications
You must be signed in to change notification settings - Fork 107
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
Adaptação para o eslint v9 #21
Comments
Aguardando a atualização também :D |
Aguardando atualização. |
1 similar comment
Aguardando atualização. |
Fala pessoal! Muita coisa rolou desde as últimas atualizações do ESLint, basicamente a equipe do ESLint não recomenda mais a formatação através do ESLint e recomendam usar libs externas (como o Prettier) desacoplado do ESLint. Vários plugins e configs não se atualizaram para o novo formato de Flat Config do ESLint gerando uma série de bugs. A partir disso, percebi que existem dois pacotes legais de utilizarmos aqui no projeto:
Estou tentando criar uma versão 3.0.0 da config da Rocketseat com essas atualizações, mas infelizmente, pelo jeito, não vamos conseguir ter exatamente as mesmas funcionalidades de formatação (por exemplo, o Stylistic não suporta o fix automático em linhas maiores que 80 caracteres e, por isso, o fix precisa ser manual). Apesar desses probleminhas, creio que valha uma nova versão e, por isso, estou trabalhando nela e devo liberar ainda essa semana uma versão de testes. |
@lucivaldo @lucianolopezz podem testar a versão BETA? #26 Necessário ter o TypeScript na versão 5 ou mais e o ESLint na versão 9 ou mais. |
Posso sim Diegão. |
Eu tive esse problema ao executar my-project on testando-plugin-rocketseat-eslint [!?] via v20.12.2 via v3.12.3
❯ npm run lint
> [email protected] lint
> next lint
Invalid Options:
- Unknown options: useEslintrc, extensions, resolvePluginsRelativeTo, rulePaths, ignorePath, reportUnusedDisableDirectives
- 'extensions' has been removed.
- 'resolvePluginsRelativeTo' has been removed.
- 'ignorePath' has been removed.
- 'rulePaths' has been removed. Please define your rules using plugins.
- 'reportUnusedDisableDirectives' has been removed. Please use the 'overrideConfig.linterOptions.reportUnusedDisableDirectives' option instead. O arquivo .eslintrc.json:
|
@lucivaldo Não roda pelo Sim, não pode deixar o Cria um arquivo
|
Aqui deu certo!
E a formatação no "save" do arquivo também está funcionando. Agora é só customizar as regras. |
@diego3g ☝️ |
@lucivaldo Só cuidado que a customização de regras não é mais da mesma forma que antes, precisa dar uma boa olhada nas documentações. Algumas coisas eu não customizaria, por exemplo, no teu erro de |
@diego3g Sim. Vou deixar a importação de |
Aqui funcionou também |
Testei a versão node e funcionou perfeitamente! |
Estava aqui testando, como eu poderia utilizar a nova configuração do import config from '@rocketseat/eslint-config/react.mjs'
import simpleImportSort from 'eslint-plugin-simple-import-sort'
export default [
...config,
{
plugins: {
'simple-import-sort': simpleImportSort,
},
rules: {
'simple-import-sort/imports': 'error',
},
},
] Dessa forma podemos adicionar mais plugins que já tem suporte para a versão flat config. Também podemos utilizar a mesma lógica para o arquivo original que vem já instalado com o vite@latest import js from '@eslint/js'
import globals from 'globals'
import reactRefresh from 'eslint-plugin-react-refresh'
import simpleImportSort from 'eslint-plugin-simple-import-sort'
import tseslint from 'typescript-eslint'
import reactHooks from 'eslint-plugin-react-hooks'
import rocketseatEslintConfig from '@rocketseat/eslint-config/react.mjs'
export default tseslint.config(
...rocketseatEslintConfig,
{ ignores: ['dist'] },
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
'simple-import-sort': simpleImportSort,
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
'simple-import-sort/imports': 'error',
},
},
) Não sei se existiria algum problema com a repetição já instalada em Mas é uma maneira que encontrei de conseguir utilizar o eslint-config junto com outros plugins. |
Vocês sabem como fazer para o VSCode formatar o arquivo automaticamente ao salva-lo com o Stylistic? Lendo a doc, fiz o que foi pedido, e mesmo assim ao formatar ele não formata automaticamente. |
Salve @tavareshenrique, Eu comentei aqui: #26 (comment), que eu achei uma indentação um pouco parecida com a antiga, ainda não é 100%, mas já é alguma coisa. EDIT:
isso vai fazer com que as correções sejam feitas quando você salvar. |
O modelo do config como .eslintrc.json não é mais aceito.
Agora temos o eslint.config.js, porém, no formato flat.
Na versão 8x o eslintrc ainda funcionava apesar de estar deprecated, mas agora ele não é mais reconhecido.
Sugiro que defina a versão 8.56 fixo nas dependências, ou, que seja efetuada a adaptação para o modelo flat.
Ou até mesmo deixe como 8.56 paliativamente até que seja efetuada a adaptação. Porém, do jeito que está, ele está baixando a versão 9.x e dando erros no output do eslint.
The text was updated successfully, but these errors were encountered: