3
respostas

Erro ao executar npx eslint .\script.js

Quando executo o comando npx eslint .\script.js me retorna o erro abaixo

Oops! Something went wrong! :(

ESLint: 9.39.2

ESLint couldn't find an eslint.config.(js|mjs|cjs) file.

From ESLint v9.0.0, the default configuration file is now eslint.config.js.   
If you are using a .eslintrc.* file, please follow the migration guide        
to update your configuration file to the new format:

https://eslint.org/docs/latest/use/configure/migration-guide

If you still have problems after following the migration guide, please stop by
https://eslint.org/chat/help to chat with the team.

Em outro forum vi que a partir da versao 9, tenho que criar um arquivo eslint.config.js

export default [
  {
    files: ["**/*.js"],
    languageOptions: {
      ecmaVersion: "latest",
      sourceType: "module",
    },
    rules: {
      semi: "error",
      quotes: ["error", "double"],
    },
  },
];

E comecou a retornar esse erro

(node:28312) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)

Oops! Something went wrong! :(

ESLint: 9.39.2

C:\Users\Vinicius\Documents\ESTUDO\organizado\alura\formacao-angular-crie-aplicacoes-web-ageis\05-node-js-terminal-ambiente-desenvolvimento-front-end\3519-nodejs-vidflow-projeto-base\eslint.config.js:1
export default [
^^^^^^

SyntaxError: Unexpected token 'export'
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1126:15)
    at Module._compile (node:internal/modules/cjs/loader:1162:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
    at Module.load (node:internal/modules/cjs/loader:1076:32)
    at Function.Module._load (node:internal/modules/cjs/loader:911:12)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:169:29)
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:530:24)

Por favor, pode ajudar?

3 respostas

Olá, Vinicius! Tudo bem?

O erro, acontece por conta da atualização drástica do ESLint para a versão 9 (que mudou o sistema de configuração) e a forma como o Node.js interpreta módulos por padrão.

Como o próprio erro sugere ("use the .mjs extension"), a forma mais simples de fazer o Node aceitar o export default sem mudar o package.json é alterar a extensão do arquivo.

Vá na pasta do seu projeto. Depois Renomeie o arquivo eslint.config.js para eslint.config.mjs. Dai execute o comando novamente: npx eslint .\script.js.

O sufixo .mjs avisa ao Node: "Ei, trate este arquivo específico como um Módulo ES".

Ou você pode dar um downgrade para a versão mais anterior**

O ESLint v9 mudou completamente a forma de configurar (Flat Config). Se o curso estiver usando arquivos como .eslintrc.json, você terá muitas dificuldades de compatibilidade se continuar na versão 9.

Para evitar dores de cabeça futuras e seguir os vídeos fielmente:

  1. Remova a versão atual e o arquivo que você criou:
  • Delete o arquivo eslint.config.js (ou .mjs).
  • No terminal, rode: npm uninstall eslint
  1. Instale a versão estável anterior (v8):
npm install eslint@8.57.0 --save-dev
  1. Agora você pode rodar o comando de inicialização antigo (que deve ser o mesmo do vídeo):
npx eslint --init

(Isso criará o arquivo .eslintrc.json ou .js no formato antigo, compatível com o curso).

Espero ter ajudado! Tente a renomeação para .mjs primeiro, deve funcionar na hora.

Sucesso

Imagem da comunidade

Bom dia patrão, pode dar uma ajuda?
Fiz os passos e nao deu certo, vou postar o que eu fiz...pode corrigir o que fiz de errado?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pode ajudar?

Acho que consiguir arrumar, deletei o arquivo eslint.config.mjs e criei o arquivo .eslintrc.cjs

module.exports = {
  env: {
    node: true,
    es2022: true,
  },
  extends: ["eslint:recommended"],
  parserOptions: {
    ecmaVersion: "latest",
    sourceType: "module",
  },
  rules: {
    "no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
    "no-console": "off",
  },
};