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日

相关文章

  • VUE的数据代理与事件详解

    VUE的数据代理与事件详解 数据代理 VUE中使用了 数据代理 的方式来进行数据绑定和更新。具体来说,当我们在VUE实例中的 data对象 上定义一个属性时,VUE会将该属性转化为getter和setter函数,并且将它们添加到VUE实例上。这样,每当我们通过VUE实例访问这个属性时,就会触发相应的getter或setter函数。 例如,我们在VUE实例中定…

    Vue 2023年5月28日
    00
  • Vue3中Vuex的详细使用方法

    下面是Vue3中Vuex的详细使用方法攻略。 什么是Vuex Vuex是Vue.js中的状态管理模式,该模式中的核心是store(仓库),store包含着状态(state)、更新状态的方法(mutations)和响应状态变化的方法(actions)。Vuex能够集中处理共享状态的逻辑,方便进行状态的修改和管理。 Vuex的安装和配置 在Vue3项目中,安装和…

    Vue 2023年5月28日
    00
  • 11行JS代码制作二维码生成功能

    当我们想要在网页上制作二维码时,可以使用JavaScript编写11行代码来实现,下面是详细步骤: 1. 引入Qrcode.js库 我们需要使用Qrcode.js库来生成二维码,因此首先需要将该库引入网页中。 <script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcod…

    Vue 2023年5月27日
    00
  • vue中对虚拟dom的理解知识点总结

    下面是关于“Vue中对虚拟DOM的理解知识点总结”的详细攻略。 什么是虚拟DOM 虚拟DOM是JavaScript对象,它是由Vue框架所提供的一种机制,可以在浏览器的内存中构建一个虚拟的DOM树,通过Diff算法找出需要更新的地方,再将这些更新应用到真正的DOM上,从而最大限度地减少Dom操作对性能的影响。 虚拟DOM相当于是对真实DOM的一层抽象,它可以…

    Vue 2023年5月28日
    00
  • Vue.js每天必学之Class与样式绑定

    Vue.js是一款非常流行的JavaScript框架,其拥有简单易用的API和灵活的数据绑定机制。其中,Class与样式绑定也是Vue.js开发中不可或缺的一部分。下面,我将介绍Vue.js每天必学之Class与样式绑定的详细攻略。 Class绑定 Vue.js中Class绑定的主要作用是用于动态地改变元素的class属性。在HTML中,元素的class属性…

    Vue 2023年5月28日
    00
  • Vue3.x的版本中build后dist文件中出现legacy的js文件问题

    Vue 3.x的版本中build后dist文件中出现legacy的js文件问题,是由于在Vue 3.x的版本中,开发团队加入了 Webpack 5 的新特性—— 模块还原 /esModule,这些变化导致了一些旧版浏览器中无法兼容这些新特性,因此需要生成一个legacy版本的js文件来兼容这些浏览器。 以下是如何解决这个问题的完整攻略: 1.修改 packa…

    Vue 2023年5月28日
    00
  • vue3的ref,computed,reactive和toRefs你都了解吗

    当然,我很乐意给你讲解。 了解Vue3的ref,computed,reactive以及toRefs Vue3中新增了一些全新的API, 其中包括 ref, computed, reactive和toRefs 。这些新增的API大大提高了数据响应式的效率,让我们更加容易地编写和维护Vue3应用程序。 ref ref允许我们将一个普通值转换为响应式Proxy对象…

    Vue 2023年5月28日
    00
  • 详解vuex的简单使用

    详解vuex的简单使用 什么是vuex Vuex是Vue.js的状态管理库,在大型单页应用中,管理共享的状态是比较困难的,因为多个组件共享状态,会导致代码结构不易维护。而Vuex就是为了解决此类问题而诞生的。 Vuex采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex所存储的状态可以用之内的方法触发改变,且变化…

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