configuração e uso do eslint

ESLint é uma ferramenta de inspeção de código JavaScript que pode ser usada para verificar o estilo do código e possíveis erros, além de fornecer padronização e controle de qualidade do código. A seguir estão opções de configuração comuns em arquivos de configuração ESLint:

1. Instale o ESLint

Primeiro, execute o seguinte comando na linha de comando para instalar o ESLint globalmente:

npm install -g eslint

Em seguida, execute o seguinte comando no diretório raiz do projeto para inicializar a configuração do ESLint:

eslint --init

2. Opções de configuração comuns

1. analisador

Especifique o analisador, Espree é usado por padrão. Por exemplo, usando o analisador Babel:

module.exports = { parser: 'babel-eslint' }

2. estende

Estenda um conjunto de regras de configuração existente. Os valores opcionais são:

  • eslint: regras padrão
  • airbnb: Regras de estilo do Airbnb
  • google: Regras de estilo do Google
  • padrão: regras de estilo padrão JavaScript
  • vue: Guia Vue.js

Por exemplo, usando as regras do Airbnb:

module.exports = { extends: 'airbnb-base' }

3. regras

Especifique regras personalizadas ou modifique as regras existentes. As regras podem especificar níveis de aviso e erro, "aviso" e "erro", respectivamente.

Por exemplo, proibir pontos e vírgulas extras:

module.exports = { rules: { 'no-extra-semi': 'error' } }

4. ambiente

Especifique o ambiente, relacionado às variáveis ​​globais. Os valores opcionais são: es6, navegador, nó, commonjs, amd, mocha, jquery, protótipojs, shelljs, mongo, jasmim, phantomjs, transferidor.

Por exemplo, para disponibilizar um ambiente ES6:

module.exports = { env: { es6: true } }

5. globais

Defina variáveis ​​globais:

module.exports = { globals: { Vue: false } }

3. Exemplo de arquivo de configuração

Aqui está um exemplo de arquivo de configuração usando regras do Airbnb e modificando algumas regras personalizadas:

module.exports = { extends: 'airbnb-base', rules: { 'no-console': 'off', 'no-unused-vars': 'error', 'no-extra-semi': 'error', 'semi': ['error', 'never'] }, env: { es6: true, node: true }, globals: { Vue: false } }

Crie o arquivo .eslintrc.js no diretório raiz do projeto e copie o conteúdo acima no arquivo. Em seguida, instale e ative o plug-in eslint no editor para implementar a função de inspeção de código.

vscode configurar ESlint

 Baixe na extensão vscode

Clique no botão de configurações do plug-in e selecione as configurações da extensão

Digite “eslint.enable” na caixa de pesquisa, selecione a opção “Workspace” ou “User” e defina-a como true.

Em seguida, clique no botão no canto superior direito (veja a imagem)

configuração.json:

1 //Configurar eslint 
 2 "eslint.autoFixOnSave": true, 
 3 "files.autoSave":"off", 
 4 "eslint.validate": [ 
 5 "javascript", 
 6 "javascriptreact", 
 7 "html", 
 8 { "linguagem": "vue", "autoFix": true } 
 9 ], 
10 "eslint.options": { 
11 "plugins": ["html"] 
12 }, 
13 //Para cumprir com os dois espaços do eslint princípio de separação 
14 "editor.tabSize": 2

 Desta forma, sempre que você salvar um arquivo (ctrl+s), o plug-in eslint corrigirá automaticamente a sintaxe eslint do arquivo atual!

Exemplo de código do arquivo .eslintrc.cjs (copie o código a seguir no arquivo .eslintrc.cjs)

módulo.exportações = {

"env": {

"navegador": verdadeiro,

"es2021": verdadeiro,

"nó": verdadeiro

},

"estende": [

"eslint: recomendado",

"plugin: vue/vue3 recomendado",

"plugin:mais bonito/recomendado",

"eslint-config-mais bonito"

],

"substituições": [

],

"parserOptions": {

"ecmaVersion": "mais recente",

"sourceType": "módulo",

"ecmaFeatures": {

"módulos": verdadeiro,

'jsx': verdadeiro

},

"requireConfigFile": falso,

'analisador': '@babel/eslint-parser'

},

"plug-ins": [

"vue",

"mais bonito"

],

"regras": {

'no-console': 'warn', // Desativa a aparência do console

'no-debugger': 'warn', // Desativa o depurador

'no-duplicate-case': 'warn', // proíbe casos duplicados

'no-empty': 'warn', // Blocos de instruções vazios são proibidos

'no-extra-parens': 'warn', // proíbe parênteses desnecessários

'no-func-assign': 'warn', // Proíbe a reatribuição da declaração de função

'no-unreachable': 'warn', // Desativa o bloco de código após [return|throw]

'no-else-return': 'warn', // Proíbe o bloco else após a instrução return na instrução if

'no-empty-function': 'warn', // Desativa blocos de funções vazios

'no-lone-blocks': 'warn', // Desativa blocos aninhados desnecessários

'no-redeclare': 'warn', // Não declare a mesma variável várias vezes

'no-return-assign': 'warn', // Não use instruções de atribuição em instruções de retorno

'no-return-await': 'warn', // Desativa desnecessário [return/await]

'no-self-compare': 'warn', // Desativa expressões de autocomparação

'no-useless-catch': 'warn', // Desativa cláusulas catch desnecessárias

'no-useless-return': 'warn', // proíbe declarações de retorno desnecessárias

'no-multiple-empty-lines': 'warn', // Desativa múltiplas linhas vazias

'no-useless-call': 'warn', // Desativa .call() e .apply() desnecessários

'no-var': 'warn', // proíbe var e substitui-o por let e const

'no-delete-var': 'off', // Permitir o uso de variáveis ​​de exclusão

'no-shadow': 'off', // Permite que declarações de variáveis ​​tenham o mesmo nome que variáveis ​​no escopo externo

'dot-notation': 'warn', // Exige o uso de pontos sempre que possível

'default-case': 'warn', // Requer uma ramificação padrão na instrução switch

'eqeqeq': 'avisar', // Requer === e !==

// 'curly': 'warn', // Exige que todas as instruções de controle usem estilo de colchetes consistente

'space-infix-ops': 'warn', // Exige espaços ao redor dos operadores

'space-unary-ops': 'warn', // Requer espaços consistentes antes e depois dos operadores unários

'switch-dois-spacing': 'warn', // Requer espaços ao redor dos dois pontos do switch

'arrow-spacing': 'warn', // Requer espaços consistentes antes e depois das funções de seta

'array-bracket-spacing': 'warn', // Requer espaçamento consistente entre colchetes de array

'brace-style': 'warn', // Exige um estilo de chaves consistente dentro dos blocos de código

'max-profundidade': ['warn', 4], // Requer uma profundidade máxima de 4 para blocos aninhados

'max-statements': ['warn', 100], // O número máximo de instruções permitidas no bloco de função é 20

'max-nested-callbacks': ['warn', 3], // Requer uma profundidade máxima de aninhamento de 3 para funções de retorno de chamada

'max-statements-per-line': ['warn', { max: 1 }], // Solicita o número máximo de instruções permitidas em cada linha

"vue/require-default-prop": 0, // Os parâmetros da propriedade Close devem ter valores padrão

"vue/singleline-html-element-content-newline": 0, // Um ​​caractere de nova linha é necessário para fechar um elemento de linha única

"vue/nomes de componentes com várias palavras":"off",

"vue/multiline-html-element-content-newline": 0, // Um ​​caractere de nova linha é necessário para fechar elementos multilinha

// É necessário que o máximo de atributos de cada linha de rótulos não exceda cinco

'vue/max-atributos-por-linha': ['avisar', { linha única: 5 }],

// Cancela a configuração de restrição de que o rótulo de fechamento não pode fechar automaticamente

"vue/html-fechamento automático": ["erro", {

"html": {

"void": "sempre",

"normal": "nunca",

"componente": "sempre"

},

"svg": "sempre",

"matemática": "sempre"

}]

}

}

Acho que você gosta

Origin blog.csdn.net/weixin_62635213/article/details/131281311
Recomendado
Clasificación