ESLint-的基本介绍[通俗易懂]

ESLint-的基本介绍[通俗易懂]什么是eslintESLint是一个代码检查工具,用来检查你的代码是否符合指定的规范(例如:=的前后必须有一个空格)。规范行业推荐的规范;在创建项目时,我们使用的是JavaScriptStandardStyle代码风格的规则自定义的规范。你和你的团队可以自行约定一套规范使用ESLint的好处在于:多人协作时代码风格统一eslint是法官,Standard是法律vue-cli工具在创建项目时提供选项,我们前面在创建项目时选中了它,所以它在本项目中是直接生效

大家好,又见面了,我是你们的朋友全栈君。

什么是eslint

ESLint 是一个代码检查工具,用来检查你的代码是否符合指定的规范(例如: = 的前后必须有一个空格)。

  • 规范

    • 行业推荐的规范; 在创建项目时,我们使用的是 JavaScript Standard Style 代码风格的规则
    • 自定义的规范。你和你的团队可以自行约定一套规范
  • 使用ESLint的好处在于:多人协作时代码风格统一

eslint是法官,Standard 是法律

vue-cli工具在创建项目时提供选项,我们前面在创建项目时选中了它,所以它在本项目中是直接生效的 。

JavaScript Standard Style 规范说明

在项目创建之初我们就选中了这个规范,也就是说,我们后续所有的代码都必须要遵守这个要求,否则ESLint就会报错。

下面是这份规则中的一小部分:

代码规范错误

如果你的代码不符合standard的要求,eslint会跳出来刀子嘴,豆腐心地提示你。下面我们在main.js中随意做一些改动:添加一行let a= 10;

import Vue from 'vue'
import App from './App.vue'
import router from './router'
​
Vue.config.productionTip = false
let a = 10 // 这行代码是新添加的
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

按下保存代码之后:将会看在控制台中输出如下错误:

1.png

改正错误的四种方式

有四种方法来修正错误:

  • 手动修正: 人肉修改
  • 命令修正:npm run lint
  • 修改规则:让代码符合修改之后的规则,当然也就不报错了
  • 插件修正: 配合vscode 中的eslint插件

手动修正

根据错误提示来一项一项手动修正。

如果你不认识命令行中的语法报错是什么意思,你可以根据错误规则名字(func-call-spacing, space-in-parens,…)去 ESLint 规则列表网站中查找其具体含义。

建议大家手动去修改错误,帮助养成良好的编码习惯,更加专业

命令修正

vuecli创建项目时 提供了自动修复功能(有些复杂的错误还是要手动来改正),具体做法是运行:

npm run lint

小结

eslint错误修正有四种方式: 我们这里介绍了前面两种,后面两种再来分别介绍。

ESLint-自定义规则

目标

了解eslint的自定义规则,能看懂.eslintrc.js的配置

自定义校验

在项目根目录下面,有一个.eslintrc.js文件,它是对eslint进行配置的,其中有一个属性是专门用来设置自定义代码规则的:rules


module.exports = {
  root: true, // 当前项目使用这个配置文件, 不会往父级目录找.eslintrc.js文件
  env: { // 指定eslint启动环境(vuecli底层是node支持), browser: true也可以在浏览器设置
    node: true
  },
  extends: [ // 扩展配置
    'plugin:vue/essential', // vue里必须的规则
    '@vue/standard' // 使eslint继承@vue/cli脚手架里的 - standard标准
  ],
  parserOptions: { // 对新语法使用eslint
    parser: 'babel-eslint' // 使用babel-eslint 来解析新语法ES6
  },
  // 这里可以进行自定义规则配置
  // key:规则代号
  // value:具体的限定方式
  //   "off" or 0 - 关闭规则
  //   "warn" or 1 - 将规则视为一个警告(不会影响退出码),只警告,不会退出程序
  //   "error" or 2 - 将规则视为一个错误 (退出码为1),报错并退出程序
  rules: { // 自定义规则 - 其实上面集成后有很多内置的规则, 这里可以进行规则的一些修改
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // 上线环境用打印就报警告, 开发环境关闭此规则
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // debugger可以终止代码执行
    'no-multiple-empty-lines': 'off' // 不允许有连续多行空行(关闭规则)
  }
}

rules是一个对象,以键值对的格式来约定规则:

  • 键名是规则名(可在报错信息和eslint官网查看)
  • 值是这条规则的具体说明, 最常见的有off,warn,error。

示例 – 关闭多行空格

在配置文件中补充一条配置:


  rules: { // 自定义规则 - 其实上面集成后有很多内置的规则, 这里可以进行规则的一些修改
    // 省略其他
+   'no-multiple-empty-lines': 'off' // 不允许有连续多行空行(关闭规则)
  }

修改了配置文件,一定要重启项目,验收效果

ESLint-在vscode中使用插件

目标

掌握配合vscode中的eslint插件一起工作的方法:

  1. 有错误立即提示(显示波浪线)
  2. ctrl+s保存时立即自动修正错误

改正错误的方式

有三种方法来修正错误:

  • 手动修正: 人肉修改
  • 命令修正:npm run lint
  • 插件修正: 配合vscode 中的eslint插件

安装eslint插件

我们还可以安装eslint插件, 让vscode实时告诉我, 我哪里错了

2.png

非常非常非常重要: 用vscode打开项目时,将脚手架工程作为vscode根目录, 因为eslint要使用配置文件.eslintrc

eslint自动格式化修正代码

按如下五个步骤:

7.png

下面是补充内容:

{
  "eslint.enable": true,
  "eslint.run": "onType",
  "eslint.options": {
      "extensions": [
          ".js",
          ".vue",
          ".jsx",
          ".tsx"
      ]
  },
  "editor.codeActionsOnSave": {
      "source.fixAll.eslint": true
  }
}

eslint.run – 运行eslint检验的时刻 (onSave保存) (onType输入时)

editor.codeActionsOnSave – 控制在保存时运行代码操作时修复哪些问题

  • source.fixAll.eslint – 自所有插件的所有可自动修复的ESLint错误都将在保存时修复

更多的规则可以看这里

备注:可能遇到的问题

ctrl+s保存不自动格式化

打开一个代码文件, 右下角有个ESLint, 如果是图示这样, 点击一下然后弹出来的对话框选择AnyWhere 在任意处生效(启动vscode中的eslint)

变成v就代表启动着呢

8.png

自动缩进1

试着把Beautify插件卸载 – eslint也能美化代码哦
9.png
可能还有JS/CSS Format插件/其他美化插件

不想卸载可以禁用

如果你的vscode中用其它扩展 启用 自动格式化功能,则有可能与eslint的规则冲突!
4.png

解决方案:关闭vscode中的自动格式化

自动缩进2

如果上面不行, 就修改vscode的配置

文件>设置里, 搜索这个, 把下面的勾去掉
5.png

一保存, 单引变双引

原因:vetur插件和eslint冲突, 修改eslint插件配置, 把这里代码覆盖进去


{
    "eslint.run": "onType",
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    },
    "vetur.validation.template": false, // 把 vetur 扩展的 template 格式化去掉
    "editor.formatOnSave": false, // 去掉 vscode 自带的自动保存 ,vscode 默认也是 false的,如果要用 eslint 格式化,默认的格式化就不能开启
    "eslint.enable": true, // eslint 格式化的配置
    "eslint.autoFixOnSave": true, // eslint保存时候自动解决语法错误
    "eslint.options": { // eslint选项-格式化js和vue文件
        "extensions": [
            ".js",
            ".vue"
        ]
    },
    "eslint.validate": [
        "javascript",
        {
            "language": "vue",
            "autoFix": true,
        },
        "html",
        "vue"
    ],
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150492.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Oracle Sequence创建与使用[通俗易懂]

    Oracle Sequence创建与使用[通俗易懂]原文地址:https://blog.csdn.net/Karloo/article/details/51423340(记录学习)1.创建sequence语句:CREATESEQUENCEseq_name–seq_name为计数器的名字,自定;INCREMENTBY1–每次加幅度:1,2,3,….;STARTWITH1–起始序号,以实际生产情况而定;NOM…

    2022年10月19日
  • java从入门到精通_学习Java最好的10本书,从入门到精通

    java从入门到精通_学习Java最好的10本书,从入门到精通在当代,学习Java等编程课程的主要方式是视频资源。如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满。但是这些课程质量良莠不齐,对于小白来说,的确让人头痛不已。但是,书籍不同。对于书籍而言,它们都是出自业内大牛和资深的大学教授的精心编写,内容好坏与否,有很多同领域的网友都能帮你把关。所以说,如果你选对了学习的书籍,就可以不用担心自己在编程中,埋下错误的种子,同时还可以更深入的…

    2022年7月8日
  • Kotlin入门(20)几种常见的对话框

    Kotlin入门(20)几种常见的对话框提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续吭哧吭哧兀自办完业务,比如转错钱了、误删资料了,往往令用户追悔莫及。所以对于部分关键业务,App为了避免用户的误操作,很有必要弹出消息对话框,提醒用户是否真的要进行此项操作。这个提醒对话框便是Ap…

    2022年6月22日
  • cocos2d-x使用CCClippingNode实现跑马灯

    cocos2d-x使用CCClippingNode实现跑马灯

    2022年1月6日
  • 拜托,面试请不要再问我Spring Cloud底层原理

    拜托,面试请不要再问我Spring Cloud底层原理结合真实业务场景,通过大量的手绘图,通俗易懂的谈谈SpringCloud微服务架构的底层原理。

    2022年6月11日
  • c++发送post请求_request的post方法作用

    c++发送post请求_request的post方法作用介绍:RestSharpRestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。RestSharp具体以下特性;1、通过NuGet方便引入到任何项目(Install-Packagerestsharp)支持net4.0++2、可以自动反序列化XML和JSON3、支持自定义的序列化与反序列化4、自动检测返回的内容类型5、支持HTTP的GET,POST,PUT,HEAD,OPTIONS,DELETE等操作…

    2022年9月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号