vue-cli 的 EsLint 配置

以vue-cli脚手架初始化的项目为例(脚手架版本:v.2.6.x)
1、首先需要下载eslint所需依赖:
npm install babel-eslint eslint eslint-loader eslint-plugin-vue -D
2、下载完毕后初始化eslint配置:

执行 ./node_modules/eslint/.bin/eslint

执行完毕后,会发现多了一个.eslintrc.js文件(提示选择的配置项,一路next即可)

3、添加webpack配置

我们需要在webpack.base.conf.js 加入eslint-loader:具体如下

	{
        test: /\.(js|vue)$/,
        loader: 'eslint-loader',
        enforce: 'pre',
        include: [resolve('src'), resolve('test')],
        options: {
          // formatter: require('eslint-friendly-formatter'),
          emitWarning: false
        }
      }

其中options.emitWarning为false的情况下,出现不符合规范的错误将会在页面中以遮罩层的方式显示,如果设置为true,则只会在控制台显示(下图显示的为false的情况)
在这里插入图片描述

4、修改eslint配置文件

在这里插入图片描述

接下来主要说一下常用配置项的作用

parserOptions的sourceType可设置为script或module,这里我们使用的是模块化开发,所以设置为module
env的主要作用是指定代码的运行环境,这里指定了浏览器环境
plugin主要是eslint的插件,插件名称可以省略eslint-plugin-,比如这个vue,我们上边第一步下载的实际是eslint-plugin-vue(注意:这里对vue也增加了使用规范,所以extends中的配置需要加上,不然会报错)
接下来最主要的是rule里的配置:

off或0–关闭规则
warn或1–开启规则,警告级别(不会导致程序退出)
error或2–开启规则,错误级别(当被触发的时候,程序会退出)
最后附上一个整理过后的常用规则配置:

rules: {
      // allow async-await
      'generator-star-spacing': 0,
      // allow debugger during development
      'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
      'no-dupe-keys': 2, // 对象key重复
      //  "quotes": ["error", "double"],
      'comma-dangle': 2, //定义数组或对象最后多余的逗号
      'no-unused-vars': 1, //变量定义后未使用
      'accessor-pairs': 2, //getter和setter要同时出现
      'use-isnan': 2, //要求检查NaN的时候使用isNaN()
      'no-sparse-arrays': 2, //数组中不允许出现空位置
      'no-native-reassign': 2, //禁止覆盖原生对象
      'keyword-spacing': 1, //关键字后边加空格
      'space-before-function-paren': 1,//函数声明时括号与函数名间加空格
      'eqeqeq': 2,//始终使用 === 替代 ==。obj == null 可以用来检查 null || undefined。
      'space-infix-ops': 1, //字符串拼接操作符 (Infix operators) 之间要留空格。
      'comma-spacing': 1, //逗号前边加空格
      'brace-style': 1, //else 关键字要与花括号保持在同一行。
      'operator-linebreak': 1, //保证三元运算符与他们负责的代码在一行
      'block-spacing': 1,//单行代码块两边加空格。
      'comma-style': 1, //始终将逗号置于行末
      'dot-location': 1, //点号操作符须与属性需在同一行
      'new-cap': 1, //构造函数要以大写字母开头。
      'no-dupe-args': 1, //不要定义冗余的函数参数
      'no-duplicate-imports': 1,//同一模块有多个导入时一次性写完
      'semi-spacing': 1, //遇到分号时空格要后留前不留
      
      'spaced-comment': 1, //注释首尾留空格 
  
      //vue
      'vue/no-dupe-keys': 2,
      // 禁止出现语法错误
      'vue/no-parsing-error': 2,
      // 禁止覆盖保留字
      // 'vue/no-reservered-keys': 2,
      // 组件的 data 属性的值必须是一个函数
      // @off 没必要限制
      'vue/no-shared-component-data': 2,
      // 可以让 <template> 使用 key 属性
      'vue/no-template-key': 'off',
      // render 函数必须有返回值
      'vue/require-render-return': 2,
      // prop 的默认值必须匹配它的类型
      'vue/require-valid-default-prop': 2,
      // 计算属性必须有返回值
      'vue/return-in-computed-property': 2,
      // template 的根节点必须合法
      'vue/valid-template-root': 2,
      // v-bind 指令必须合法
      'vue/valid-v-bind': 2,
      // v-cloak 指令必须合法
      'vue/valid-v-cloak': 2,
      // v-else-if 指令必须合法
      'vue/valid-v-else-if': 2,
      // v-else 指令必须合法
      'vue/valid-v-else': 2,
      // v-for 指令必须合法
      'vue/valid-v-for': 2,
      // v-html 指令必须合法
      'vue/valid-v-html': 2,
      // v-if 指令必须合法
      'vue/valid-v-if': 2,
      // v-model 指令必须合法
      'vue/valid-v-model': 2,
      // v-on 指令必须合法
      'vue/valid-v-on': 2,
      // v-once 指令必须合法
      'vue/valid-v-once': 2,
      // v-pre 指令必须合法
      'vue/valid-v-pre': 2,
      // v-show 指令必须合法
      'vue/valid-v-show': 2,
      // v-text 指令必须合法
      'vue/valid-v-text': 2,
  
      'vue/html-end-tags': 'off',
      // 计算属性禁止包含异步方法
      'vue/no-async-in-computed-properties': 2,
      // 禁止出现难以理解的 v-if 和 v-for
      'vue/no-confusing-v-for-v-if': 2,
      // 禁止出现重复的属性
      'vue/no-duplicate-attributes': 2,
      // 禁止在计算属性中对属性修改, 是具体情况而定,有时候可能会用到,列为warn;
      'vue/no-side-effects-in-computed-properties': 1,
      // 禁止在 <textarea> 中出现 {{message}}
      'vue/no-textarea-mustache': 2,
      // 组件的属性必须为一定的顺序
      'vue/order-in-components': [2, {
        "order": [
          "el",
          ["name", "parent"],
          "functional",
          "delimiters",
          ["components", "directives", "filters"],
          ["extends", "mixins"],
          ["model", "props", "propsData"],
          ["data", "computed"],
          ["watch", "LIFECYCLE_HOOKS"],
          "methods",
          ["template", "render", "renderError"]
        ]
      }],
      // <component> 必须有 v-bind:is
      'vue/require-component-is': 2,
      // prop 必须有类型限制
      'vue/require-prop-types': 2,
      // v-for 指令的元素必须有 v-bind:key
      'vue/require-v-for-key': 2,
      // @fixable 限制 v-bind 的风格, 统一简写形式
      'vue/v-bind-style': 2,
      // @fixable 限制 v-on 的风格,统一简写形式
      'vue/v-on-style': 2,
    }

以上规则设置为2(也就是error)且options.emitWarning为false的情况下,将会以图一的方式提示规范错误。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue-cli-service build是一个用于构建Vue项目的命令。它是通过调用vue-cli-service模块来执行构建操作的。具体来说,vue-cli-service指令作为入口文件,被node.exe调用,并将运行参数传递给Service服务模块。该命令会编译和打包Vue项目的源代码,生成用于部署的最终版本。它会将Vue组件、JavaScript文件、CSS样式等打包成静态资源文件,以便在浏览器中运行。通过执行vue-cli-service build命令,您可以生成一个用于生产环境的优化、压缩的Vue项目。请确保您已经按照相应的依赖和配置进行安装和设置,以便成功执行该命令。 vue-cli-service lint是用于代码风格检查的命令。lint命令通过调用vue-cli-service模块,使用ESLint工具对Vue项目的代码进行静态分析,以确保代码符合指定的编码规范。它会检查代码中的潜在错误、不规范的代码风格以及其他一些代码质量问题,并提供相应的提示和警告。通过执行vue-cli-service lint命令,您可以检查和修复代码中的潜在问题,以提高代码的可读性和可维护性。请注意,使用lint命令之前,您需要在项目中配置相应的ESLint规则和配置文件。 总结起来,vue-cli-service build用于构建Vue项目,将源代码打包成可部署的静态资源文件,而vue-cli-service lint用于代码风格检查,帮助您确保代码符合指定的编码规范。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue serve及其与vue-cli-service serve之间的关系](https://blog.csdn.net/pulledup/article/details/126950958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值