eslint-plugin-vue 的初体验

近日看到 vuejs-templates/webpack更新记录中介绍了 eslint-plugin-vue。由于它不包含如分号这类代码风格相关的规范,只加强了 Vue 相关的规范,能够和 standard 与 airbnb 这类样式共存,所以决定在项目中采用。

安装

yarn add -D eslint eslint-plugin-vue

eslintrc 的 extends 项中添加 plugin:vue/essential

module.exports = {
  extends: [
    // add more generic rulesets here, such as:
    // 'eslint:recommended',
    'plugin:vue/essential'
  ],
  rules: {
    // override/add rules settings here, such as:
    // 'vue/no-unused-vars': 'error'
  }
}

注意事项

如果使用了其它的 parser(如 "parser": "babel-eslint"),需要将它移到 parserOptions 中,这样就不会与 vue-eslint-parser 冲突:

- "parser": "babel-eslint",
  "parserOptions": {
+     "parser": "babel-eslint",
      "ecmaVersion": 2017,
      "sourceType": "module"
  }

原来的项目中有使用 eslint-plugin-html,它会与 eslint-plugin-vue 冲突,使用时需要移除。

使用效果

执行一遍 npm run lint 后,输出如图:

lint with eslint-plugin-vue

由于启用了所有规则,所以会显示出很多 error,尤其是 vue/order-in-components,它规范了组件中属性的顺序。

相信启用 eslint-plugin-vue 可以使项目代码更加规范统一。