vscode中vue-cli项目es-lint的配置方法


Posted in Javascript onJuly 30, 2018

本文主要介绍vscode中 vue项目es-lint的配置,有任何错误的地方欢迎大佬指出

开始

安装插件

如图所示:

vscode中vue-cli项目es-lint的配置方法 

vscode设置

安装完成之后,到vscode中的 文件-->首选项-->设置 中 添加如下代码

"eslint.autoFixOnSave": true,
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "html",
    {
    "language": "html",
    "autoFix": true
    },
    {
    "language": "vue",
    "autoFix": true
    }
  ]

        autoFix表示自动格式化代码,简直不要太好用~~

es-lint配置

就快大工告成了,接下来我们需要还需要如下配置

.eslintrc.js

注意

很多小伙伴可能会存在如下报错,npm install -g babel-eslint 即可

vscode中vue-cli项目es-lint的配置方法 

配置

下面是我个人参考百度通修改后做的配置,写于.eslintrc.js中,因个人喜好,未使用:全等、对象引号做键等规则,大家可自行修改

module.exports = {
   root: true,       //此项是用来告诉eslint找当前配置文件不能往父级查找
   parser: 'babel-eslint', //解析器,这里我们使用babel-eslint
   parserOptions: {
    sourceType: 'module' //类型为module,因为代码使用了使用了ECMAScript模块
   },
   env: {
    browser: true, //预定义的全局变量,这里是浏览器环境
   },
   // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
   //extends: 'standard', //扩展,可以通过字符串或者一个数组来扩展规则
   // required to lint *.vue files
   plugins: [
    'html' //插件,此插件用于识别文件中的js代码,没有MIME类型标识没有script标签也可以识别到,因此拿来识别.vue文件中的js代码
   ],
   // add your custom rules here
   'rules': {
    //这里写自定义规则
    "comma-dangle": ["error", "never"], //是否允许对象中出现结尾逗号
    "no-cond-assign": 2, //条件语句的条件中不允许出现赋值运算符
    // "no-console": 2, //不允许出现console语句
    "no-constant-condition": 2, //条件语句的条件中不允许出现恒定不变的量
    "no-control-regex": 2, //正则表达式中不允许出现控制字符
    "no-debugger": 2, //不允许出现debugger语句
    "no-dupe-args": 2, //函数定义的时候不允许出现重复的参数
    "no-dupe-keys": 2, //对象中不允许出现重复的键
    "no-duplicate-case": 2, //switch语句中不允许出现重复的case标签
    "no-empty": 2, //不允许出现空的代码块
    "no-empty-character-class": 2, //正则表达式中不允许出现空的字符组
    "no-ex-assign": 2, //在try catch语句中不允许重新分配异常变量
    "no-extra-boolean-cast": 2, //不允许出现不必要的布尔值转换
    "no-extra-parens": 0, //不允许出现不必要的圆括号
    "no-extra-semi": 2, //不允许出现不必要的分号
    "no-func-assign": 2, //不允许重新分配函数声明
    "no-inner-declarations": ["error", "functions"], //不允许在嵌套代码块里声明函数
    "no-invalid-regexp": 2, //不允许在RegExp构造函数里出现无效的正则表达式
    "no-irregular-whitespace": 2, //不允许出现不规则的空格
    "no-negated-in-lhs": 2, //不允许在in表达式语句中对最左边的运算数使用取反操作
    "no-obj-calls": 2, //不允许把全局对象属性当做函数来调用
    "no-regex-spaces": 2, //正则表达式中不允许出现多个连续空格
    // "quote-props": 2, //对象中的属性名是否需要用引号引起来
    "no-sparse-arrays": 2, //数组中不允许出现空位置
    // "no-unreachable": 2, //在return,throw,continue,break语句后不允许出现不可能到达的语句
    "use-isnan": 2, //要求检查NaN的时候使用isNaN()
    "valid-jsdoc": ["error", {
     "requireReturn": false,
     "requireParamDescription": false,
     "requireReturnDescription": true
    }], //强制JSDoc注释
    "valid-typeof": ["error", {
     "requireStringLiterals": true
    }], //在使用typeof表达式比较的时候强制使用有效的字符串
    "block-scoped-var": 2, //将变量声明放在合适的代码块里
    "complexity": 0, //限制条件语句的复杂度
    // "consistent-return": 2, //无论有没有返回值都强制要求return语句返回一个值
    "curly": ["error", "all"], //强制使用花括号的风格
    "default-case": 0, //在switch语句中需要有default语句
    "dot-notation": ["error", {
     "allowKeywords": false,
     "allowPattern": ""
    }], //获取对象属性的时候使用点号
    // "eqeqeq": ["error", "smart"], //比较的时候使用严格等于
    "no-alert": 1, //不允许使用alert,confirm,prompt语句
    "no-caller": 2, //不允许使用arguments.callee和arguments.caller属性
    "guard-for-in": 0, //监视for in循环,防止出现不可预料的情况
    "no-div-regex": 2, //不能使用看起来像除法的正则表达式
    "no-else-return": 0, //如果if语句有return,else里的return不用放在else里
    "no-labels": ["error", {
     "allowLoop": false,
     "allowSwitch": false
    }], //不允许标签语句
    "no-eq-null": 2, //不允许对null用==或者!=
    "no-eval": 2, //不允许使用eval()
    "no-extend-native": 2, //不允许扩展原生对象
    "no-extra-bind": 2, //不允许不必要的函数绑定
    "no-fallthrough": 2, //不允许switch按顺序全部执行所有case
    "no-floating-decimal": 2, //不允许浮点数缺失数字
    "no-implied-eval": 2, //不允许使用隐式eval()
    "no-iterator": 2, //不允许使用__iterator__属性
    "no-lone-blocks": 2, //不允许不必要的嵌套代码块
    "no-loop-func": 2, //不允许在循环语句中进行函数声明
    "no-multi-spaces": 2, //不允许出现多余的空格
    "no-multi-str": 2, //不允许用\来让字符串换行
    "no-global-assign": 2, //不允许重新分配原生对象
    "no-new": 2, //不允许new一个实例后不赋值或者不比较
    "no-new-func": 2, //不允许使用new Function
    "no-new-wrappers": 2, //不允许使用new String,Number和Boolean对象
    "no-octal": 2, //不允许使用八进制字面值
    "no-octal-escape": 2, //不允许使用八进制转义序列
    "no-param-reassign": 0, //不允许重新分配函数参数"no-proto": 2, //不允许使用__proto__属性
    "no-redeclare": 2, //不允许变量重复声明
    // "no-return-assign": 2, //不允许在return语句中使用分配语句
    "no-script-url": 2, //不允许使用javascript:void(0)
    "no-self-compare": 2, //不允许自己和自己比较
    "no-sequences": 2, //不允许使用逗号表达式
    "no-throw-literal": 2, //不允许抛出字面量错误 throw "error"
    "no-unused-expressions": 2, //不允许无用的表达式
    "no-void": 2, //不允许void操作符
    "no-warning-comments": [1, {
     "terms": ["todo", "fixme", "any other term"]
    }], //不允许警告备注
    "no-with": 2, //不允许使用with语句
    "radix": 1, //使用parseInt时强制使用基数来指定是十进制还是其他进制
    "vars-on-top": 0, //var必须放在作用域顶部
    "wrap-iife": [2, "any"], //立即执行表达式的括号风格
    "yoda": [2, "never", {
     "exceptRange": true
    }], //不允许在if条件中使用yoda条件
    "strict": [2, "function"], //使用严格模式
    "no-catch-shadow": 2, //不允许try catch语句接受的err变量与外部变量重名"no-delete-var": 2, //不允许使用delete操作符
    "no-label-var": 2, //不允许标签和变量同名
    "no-shadow": 2, //外部作用域中的变量不能与它所包含的作用域中的变量或参数同名
    "no-shadow-restricted-names": 2, //js关键字和保留字不能作为函数名或者变量名
    // "no-undef": 2, //不允许未声明的变量
    "no-undef-init": 2, //不允许初始化变量时给变量赋值undefined
    // "no-undefined": 2, //不允许把undefined当做标识符使用
    // "no-unused-vars": [2, {
    //  "vars": "all",
    //  "args": "after-used"
    // }], //不允许有声明后未使用的变量或者参数
    "no-use-before-define": [2, "nofunc"], //不允许在未定义之前就使用变量"indent": 2, //强制一致的缩进风格
    "brace-style": [2, "1tbs", {
     "allowSingleLine": false
    }], //大括号风格
    // "camelcase": [2, {
    //  "properties": "never"
    // }], //强制驼峰命名规则
    "comma-style": [2, "last"], //逗号风格
    "consistent-this": [0, "self"], //当获取当前环境的this是用一样的风格
    "eol-last": 2, //文件以换行符结束
    "func-names": 0, //函数表达式必须有名字
    "func-style": 0, //函数风格,规定只能使用函数声明或者函数表达式
    "key-spacing": [2, {
     "beforeColon": false,
     "afterColon": true
    }], //对象字面量中冒号的前后空格
    "max-nested-callbacks": 0, //回调嵌套深度
    "new-cap": [2, {
     "newIsCap": true,
     "capIsNew": false
    }], //构造函数名字首字母要大写
    "new-parens": 2, //new时构造函数必须有小括号
    "newline-after-var": 0, //变量声明后必须空一行
    "no-array-constructor": 2, //不允许使用数组构造器
    "no-inline-comments": 0, //不允许行内注释
    "no-lonely-if": 0, //不允许else语句内只有if语句
    "no-mixed-spaces-and-tabs": [2, "smart-tabs"], //不允许混用tab和空格
    "no-multiple-empty-lines": [2, {
     "max": 2
    }], //空行最多不能超过两行
    "no-nested-ternary": 2, //不允许使用嵌套的三目运算符
    "no-new-object": 2, //禁止使用new Object()
    // "fun-call-spacing": 2, //函数调用时,函数名与()之间不能有空格
    "no-ternary": 0, //不允许使用三目运算符
    "no-trailing-spaces": 2, //一行最后不允许有空格
    // "no-underscore-dangle": 2, //不允许标识符以下划线开头
    "no-extra-parens": 0, //不允许出现多余的括号
    "one-var": 0, //强制变量声明放在一起
    "operator-assignment": 0, //赋值运算符的风格
    "padded-blocks": [2, "never"], //块内行首行尾是否空行
    "quote-props": 0, //对象字面量中属性名加引号
    "quotes": [1, "single", "avoid-escape"], //引号风格
    "semi": [2, "always"], //强制语句分号结尾
    "semi-spacing": [2, {
     "before": false,
     "after": true
    }], //分后前后空格
    "sort-vars": 0, //变量声明时排序
    "space-before-blocks": [2, "always"], //块前的空格
    "space-before-function-paren": [2, {
     "anonymous": "always",
     "named": "never"
    }], //函数定义时括号前的空格
    "space-infix-ops": [2, {
     "int32Hint": true
    }], //操作符周围的空格
    "keyword-spacing": 2, //关键字前后的空格
    "space-unary-ops": [2, {
     "words": true,
     "nonwords": false
    }], //一元运算符前后不要加空格
    "wrap-regex": 2, //正则表达式字面量用括号括起来
    "no-var": 0, //使用let和const代替var
    "generator-star-spacing": [2, "both"], //生成器函数前后空格
    "max-depth": 0, //嵌套块深度
    "max-len": 0, //一行最大长度,单位为字符
    "max-params": 0, //函数最多能有多少个参数
    "max-statements": 0, //函数内最多有几个声明
    "no-bitwise": 0, //不允许使用位运算符
    "no-plusplus": 0 //不允许使用++ --运算符
   }
  }

总结

以上所述是小编给大家介绍的vscode中vue-cli项目es-lint的配置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript prototype 原型链
Mar 12 Javascript
jQuery操作select的实例代码
Jun 14 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
Nov 01 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
Jul 12 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
Mar 13 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
JavaScript 异步调用
Oct 25 Javascript
微信小程序点击保存图片到本机功能
Dec 13 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
Dec 10 Javascript
简单聊聊TypeScript只读修饰符
Apr 06 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
Jul 30 #Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 #Javascript
angular-tree-component的使用详解
Jul 30 #Javascript
使用vue-router为每个路由配置各自的title
Jul 30 #Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
Jul 30 #Javascript
在react中使用vuex的示例代码
Jul 30 #Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 #Javascript
You might like
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
初步认识Python中的列表与位运算符
2015/10/12 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Django 解决由save方法引发的错误
2020/05/21 Python
python中元组的用法整理
2020/06/15 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
购房协议书
2014/04/11 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
《观舞记》教学反思
2014/04/16 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
社区志愿者培训方案
2014/06/10 职场文书
尊师重教演讲稿
2014/09/04 职场文书
八一建军节演讲稿
2014/09/10 职场文书
2014年学校工作总结
2014/11/20 职场文书
pandas数值排序的实现实例
2021/07/25 Python