vue基础ESLint Prettier配置教程详解

以下是“vue基础ESLint Prettier配置教程详解”的完整攻略。

什么是ESLint和Prettier

ESLint是一个开源的JavaScript Lint工具,用于识别和报告代码中的模式。它支持ES6语法和JSX语法,并插件化。对于样式一致性和错误检查等非常有用。它可以直接集成到IDE中,可以在保存时自动进行formatting和代码规范的检查和修复。

Prettier是一个代码格式化的工具,可以自动调整代码的样式,比如空格、换行、引号等等。它是高度可配置的,可以与ESLint很好地协作,比如对于一些风格问题,可以通过ESLint进行检查并通过Prettier自动完成修复。

配置过程和步骤

第一步:安装依赖

首先,我们需要安装相关依赖。

npm install eslint eslint-plugin-vue  prettier eslint-config-prettier eslint-plugin-prettier husky lint-staged --save-dev
  • eslint - ESLint核心库
  • eslint-plugin-vue - vue的eslint插件
  • prettier - 代码格式化工具
  • eslint-config-prettier - 将Prettier输出的格式化规则禁用ESLint中与之冲突的部分
  • eslint-plugin-prettier - 对Prettier的配置进行包装,在ESLint中作为规则使用
  • husky - 类似于git hooks的工具,用于在代码提交前进行相关的检查和操作
  • lint-staged - 可以让我们只在提交代码发现改变的文件进行代码检查

第二步:创建.eslintrc.js文件

在项目的根目录下创建.eslintrc.js文件,并在其中配置ESLint的规则和插件以及与Prettier的协同工作关系。

module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    'plugin:vue/essential',
    'eslint:recommended',
    '@vue/prettier',
    '@vue/typescript',
    'prettier',
    'prettier/vue',
  ],
  plugins: ['prettier'],
  parserOptions: {
    ecmaVersion: 2020,
    parser: '@typescript-eslint/parser',
  },
  rules: {
    'prettier/prettier': 'error',
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
  },
};
  • root - 必须设置为“true”,表示该文件为config文件,停止在父文件夹中寻找
  • env - 环境设置
  • extends - 扩展配置,包含的是eslint-config-prettierplugin:vue/prettier
  • parser - 代码解析器
  • parserOptions - 附加规则
  • plugins - ESLint插件
  • rules - 要执行的规则

第三步:创建 .prettierrc.js 文件

module.exports = {
  singleQuote: true,
  semi: true,
  trailingComma: 'all',
  printWidth: 80,
};

以上的代码表示,我们启用了单引号、分号和所有尾随逗号。

第四步:添加husky和pre-commit配置

我们可以在package.json文件中添加以下内容

  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{js,vue,ts}": [
      "eslint --fix",
      "prettier --write"
    ]
  }

这段代码表示在即将提交代码之前,执行lint-staged命令,检查所遇到的所有js,vue,ts文件,如果存在ESLint或Prettier规则,就更新它们的样式。

示例1:在VS Code中使用 ESLint 和 Prettier

在VS Code中,我们还可以使用基于插件的方式使得我们不用在终端输入很多命令。首先,我们需要安装以下两个VS Code插件:

  • ESLint:搜索ESLint插件并安装到VS Code。
  • Prettier:搜索Prettier插件并安装到VS Code。

接下来,我们需要配置VS Code,打开 settings.json 文件,加入以下代码:

  "editor.formatOnSave": true, // 每次文件保存时,格式化文件
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "vue",
    "typescript",
    "typescriptreact"
  ],
  "prettier.eslintIntegration": true, // 让Prettier使用ESLint的代码样式规则进行格式化
  "vetur.format.defaultFormatter": {
    "html": "js-beautify-html",
    "css": "prettier",
    "postcss": "prettier",
    "scss": "prettier",
    "less": "prettier",
    "js": "prettier",
    "ts": "prettier",
    "stylus": "stylus-supremacy"
  }

示例2:在vue-cli项目中配置ESLint和Prettier

在vue-cli项目中,我们只需要进行如下配置即可:

package.json文件中加入以下代码:

{
  "scripts": {
    "lint": "eslint --ext .js,.vue src",
    "lint:fix": "eslint --fix --ext .js,.vue src"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended",
      "@vue/prettier"
    ],
    "parserOptions": {
      "parser": "babel-eslint"
    }
  },
  "prettier": {
    "singleQuote": true,
    "semi": true,
    "trailingComma": "es5"
  }
}

然后,在控制台中执行命令:

npm install --save-dev eslint-config-prettier eslint-plugin-prettier

这一步将安装Prettier插件和与ESLint一起运行的包装器。

最后,我们在index.js或者其他主文件的<script>中加入以下注释:

/* eslint-disable */
// Some code.
/* eslint-enable */

这告诉ESLint忽略此段代码。

以上就是vue基础ESLint Prettier配置教程的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue基础ESLint Prettier配置教程详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 茶余饭后聊聊Vue3.0响应式数据那些事儿

    让我来详细讲解一下“茶余饭后聊聊Vue3.0响应式数据那些事儿”的完整攻略。 Vue3.0响应式数据 在Vue3.0中,提供了一个新的API——ref,来创建响应式数据。 创建响应式数据 要创建一个响应式数据,只需要使用ref函数进行创建即可,例如: import { ref } from ‘vue’ const count = ref(0) 使用响应式数据…

    Vue 2023年5月29日
    00
  • vue实现在进行增删改操作后刷新页面

    在Vue中实现增删改操作后刷新页面,通常有以下几种解决方案。 方案一:使用Vue-Router路由参数 通过获取路由参数中的刷新标识,在操作增删改的时候,通过改变路由参数的值来让页面进行刷新。 // 在Vue-Router路由配置中定义动态路由参数 { path: ‘/list/:refresh’, name: ‘List’, component: List…

    Vue 2023年5月28日
    00
  • js简单获取表单中单选按钮值的方法

    下面我来详细讲解 “js简单获取表单中单选按钮值的方法”。 1. HTML部分 首先,我们需要在HTML代码中定义一个表单,并在表单内部添加一个单选框。例如,我们可以在表单中添加两个单选框,分别用于选择“男性”和“女性”,代码如下所示: <form> <label> <input type="radio" n…

    Vue 2023年5月28日
    00
  • 基于vue 动态加载图片src的解决方法

    下面是完整的“基于Vue动态加载图片src的解决方法”的攻略: 1. 背景 在Vue项目中,动态加载图片很常见,但如果在组件中使用v-bind:src动态绑定图片路径,由于Vue在编译时使用“静态渲染”机制,而不是重新计算DOM操作,所以后续修改src的值并不会生效。因此需要使用其他的技巧动态加载图片。 2. 解决方法 2.1 使用require 使用 re…

    Vue 2023年5月28日
    00
  • vue关于select组件绑定的值为数字类型的问题

    在 Vue.js 中,我们可以使用v-model指令双向绑定 select 组件的值。但需要注意的是,当绑定值为数字类型时,我们需要特别地处理。 问题描述 默认情况下, select 组件的值是一个字符串类型的值。如果我们尝试将其值绑定到一个数字类型的变量时,我们会发现一个问题:在使用 v-model 更新这个变量的值时,它的值不是数字,而是字符串类型的。 …

    Vue 2023年5月27日
    00
  • Vue的data为啥只能是函数原理详解

    Vue的data中为什么只能是函数呢?这是一个常见的Vue面试题,其主要原因是为了保证每个Vue组件实例都有一个独立的数据对象,在多个组件实例中互不干扰。 具体来说,当一个组件实例化时,如果data选项是一个对象,那么这个对象会被所有这个组件的实例共享,这样就会导致一个实例修改了data中的值,其他实例中的值也会发生改变,这样就无法实现组件复用了。 而当我们…

    Vue 2023年5月28日
    00
  • 在Vue中实现添加全局store

    下面给您详细讲解在Vue中实现添加全局store的完整攻略: 步骤一:在Vue中创建store实例 在Vue中,我们可以使用Vuex来实现全局store功能,因此首先需要在Vue项目中安装并引用Vuex库: npm install vuex –save 在Vue项目中引用Vuex库: import Vuex from ‘vuex’ Vue.use(Vuex…

    Vue 2023年5月27日
    00
  • Vue.js路由vue-router使用方法详解

    Vue.js是现代前端开发的新宠儿。其中路由是Vue.js中的一个重要组成部分。Vue-Router(vue-router)是Vue.js官方提供的一个Vue.js路由管理器,它和Vue.js框架深度集成,是构建单页Web应用程序的重要基础库之一。在这里,我们将详细讲解vue-router的使用方法。 安装vue-router 在使用Vue.js时,需要首先…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部