美文网首页
Eslint配置

Eslint配置

作者: wave浪儿 | 来源:发表于2022-12-14 15:19 被阅读0次

vue-create新建的一个没有eslint的初始化项目:

如何加上eslint?

1. 安装如下插件

@vue/cli-plugin-eslint // vue-cli 的 eslint 插件,装了这个就会去找eslint配置文件了
eslint
eslint-plugin-vue // eslint检查.vue文件的<template>和<script>
eslint-config-prettier // 禁用掉了一些不必要的以及和 Prettier 相冲突的 ESLint 规则
eslint-plugin-prettier // prettier 作为 ESLint 的规则来用,代码不符合 Prettier 的标准时,会报 ESLint 错误
eslint-config-standard // 一个js代码规范,比eslint的要全,下面三个是它的依赖
eslint-plugin-import
eslint-plugin-n
eslint-plugin-promise
@babel/eslint-parser // esLint的Babel解析器代替babel-eslint

2. 根目录创建.eslintrc.js

module.exports = {
  root: true, // 将ESLint限制到一个特定的项目、目录,为true,则ESLint会停止在父级目录中寻找
  env: {
    // 启用特定环境的全局变量
    browser: true, // 浏览器全局变量
    node: true, // Node.js 全局变量和 Node.js 作用域
    es6: true, // 启用除了modules以外的所有 EC6 特性,开启后会自动设置ecmaVersion为6
  },
  /** eslint:recommended(自动启用部分列核心功能) 、 eslint:all(启用当前Eslint全部核心功能) */
  // vue-cli创建后的默认配置
  // extends: ['plugin:vue/essential', 'eslint:recommended'], 
  // 没有用prettier,但是一旦vscode开启了,就会冲突报错
  // extends: ["plugin:vue/recommended", "standard"],
  // eslint规则+prettier风格组合
  // extends: ["plugin:vue/recommended", "plugin:prettier/recommended"], 
  //
   /** 
    eslint规则+standard+prettier风格组合
    vscode一定要安装开启prettier,并且设为默认格式
    且不符合prettier格式的不会报红,但保存会自动修复
   */
  // extends: ["plugin:vue/recommended", "standard", "prettier"], 
 /** 
    最终方案:
    eslint规则+standard+prettier风格组合
    可不安装prettier,直接用eslint设为保存的格式
    会报红且保存自动修复
   */
  extends: [
    "plugin:vue/recommended",
    "standard",
    "plugin:prettier/recommended",
  ], 
  parserOptions: {
    parser: "@babel/eslint-parser", // 一个对Babel解析器的包装,使其能够与 ESLint 兼容
  },
  // 当访问当前文件内未定义的变量时,no-undef 规则将发出警告。
  // 如果想在一个文件里使用全局变量,可以 ESLint 中定义这些全局变量。
  globals: {
    wx: "readonly",
    WeixinJSBridge: "readonly",
  },
};

3. vscode开启eslint

安装eslint插件,并且在settings.json中配置如下,保存会自动修复

{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
}

4. 小插曲:是否需要加standard

因为一开始我的配置是这种,我觉得不需要加standard,经过考察,standard的校验更全面,还是加上。

extends: ["plugin:vue/recommended", "plugin:prettier/recommended"], 

举个例子:
standard的规则中配置了 no-use-before-define 禁止定义前使用 no-eval 禁止使用eval 就拿着两个举例吧:

fn1(val) {
      // 下面2行代码,如果配置eslint-config-standard就会报错,不配置就不会
     eval("22");
     alert(a);
},

相关文章

网友评论

      本文标题:Eslint配置

      本文链接:https://www.haomeiwen.com/subject/spqlqdtx.html