使用ESLint+Prettier来统一前端代码风格

news/2024/7/10 1:21:10 标签: vue

Prettier 简单使用

ESLint 与 Prettier配合使用

 首先肯定是需要安装 prettier ,并且你的项目中已经使用了 ESLint ,有 eslintrc.js 配置文件。

npm i -D prettier

配合ESLint检测代码风格

安装插件:

npm i -D eslint-plugin-prettier

 eslint-plugin-prettier 插件会调用 prettier对你的代码风格进行检查,其原理是先使用 prettier对你的代码进行格式化,然后与格式化之前的代码进行对比,如果过出现了不一致,这个地方就会被 prettier进行标记。

接下来,我们需要在 eslintrc.js 的 rules 中添加, "prettier/prettier": "error" ,表示被 prettier 标记的地方抛出错误信息。

//.eslintrc.js
{
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error"
  }
}

借助ESLint的autofix功能,在保存代码的时候,自动将抛出error的地方进行fix。
如果你的eslint是直接通过cli方式启动的,那么只需要在后面加上fix即可,如: eslint --fix 。(eslint的fix功能会修改源文件!切记!!!)

如果与已存在的插件冲突怎么办

npm i -D eslint-config-prettier

通过使用eslint-config-prettier配置,能够关闭一些不必要的或者是与prettier冲突的lint选项。这样我们就不会看到一些error同时出现两次。使用的时候需要确保,这个配置在extends的最后一项。

 

//.eslintrc.js
{
  extends: [
    'standard', //使用standard做代码规范
    "prettier",
  ],
}

这里有个文档,列出了会与prettier冲突的配置项。

同时使用上面两项配置

如果你同时使用了上述的两种配置,那么你可以通过如下方式,简化你的配置。

//.eslintrc.js
{
  "extends": ["plugin:prettier/recommended"]
}

最后贴一下我们项目中的完整配置,是在vue-cli生成的代码基础上修改的,并且使用standard做代码规范:


module.exports = {
  root: true,
  parserOptions: {
    parser: 'babel-eslint'
  },
  env: {
    browser: true,
    es6: true
  },
  extends: [
    // https://github.com/standard/standard/blob/master/docs/RULES-en.md
    'standard',
    // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
    // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
    'plugin:vue/essential',
    "plugin:prettier/recommended",
  ],
  // required to lint *.vue files
  plugins: [
    'vue'
  ],
  // add your custom rules here
  rules: {
    "prettier/prettier": "error",
    // allow async-await
    'generator-star-spacing': 'off',
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
  }
}

 

什么?你们项目没有启用ESLint

 

不要慌,没有ESLint也不要怕,可以通过onchange进行代码的监听,然后自动格式化代码。只要在package.json的scripts下添加如下代码,然后使用 npm run format ,我们就能监听src目录下所有的js文件并进行格式化:

"scripts": {
  "format": "onchange 'src/**/*.js' -- prettier --write {{changed}}"
}

当你想格式化的文件不止js文件时,也可以添加多个文件列表。

"scripts": {
  "format": "onchange 'test/**/*.js' 'src/**/*.js' 'src/**/*.vue' -- prettier --write {{changed}}"
}

当然,你也能够在编辑器中配置对prettier的支持,具体支持哪些编辑器,请戳这里


http://www.niftyadmin.cn/n/951563.html

相关文章

解决input自动获取焦点的问题

如果不想让input一开始就自动获取焦点。 解决方案&#xff1a;设置 tabindex"-1"即可 <input type"submit" name"Submit" value"提交" tabindex"-1" /> 另外如果一个页面中有多个input框&#xff0c;默认第一个inpu…

echarts 柱状图异常-第一个柱超出y轴

问题 &#xff1a;echarts 柱状图异常-第一个柱状超出y轴 原因&#xff1a;echarts插件中参数 boundaryGap为false的问题&#xff08;初始化为柱状图&#xff09; (boundaryGap 类目起始和结束两端空白策略&#xff0c;默认为true留空&#xff0c;false则顶头 ) 解决办法 &am…

百度编辑器ueditor表格无法显示边框以及边框颜色等系列问题解决方案

使用百度编辑器ueditor表格无法显示边框以及边框颜色等系列问题解决方案 最近在使用百度编辑器ueditor时遇到了表格无法显示边框以及边框颜色等系列问题&#xff0c;网上查了很多方法都无法实现&#xff0c;于是自己找了一下原因&#xff0c;发现其实挺简单的&#xff0c;下面…

前端学习文档记录

没有特意总结&#xff0c;只是将自己看到的觉得比较好的文档记录一下&#xff0c;方便下次以后学习&#xff08;持续更新中……&#xff09; vue使用中的小技巧&#xff1a; https://blog.csdn.net/sinat_17775997/article/details/80117623 Linux基础知识总结一&#xff1a; …

前端也要懂Http缓存机制

最近在看面试题的时候总会看到有一些关于Http缓存的题目&#xff0c;但是总是一知半解&#xff0c;不甚理解&#xff1b;尤其是Http头信息中有一大堆的字段&#xff0c;什么if-modified-since&#xff0c;什么if-none-match&#xff0c;真是令人头疼。后来突然想到&#xff0c;…

数组对象比较处理(面试题,附答案)

闲来无事&#xff0c;看到一个面试题&#xff0c;做了一下,如图面试题 写了几个工具函数&#xff1a;需要引入一下 判断是否为数组判断是否为对象判断函数的参数是否为同一数据类型 /* * 判断是否为数组 * */ function isArray (params) {return params instanceof Array }/* …

leaflet 常用方法总结

目录 1、使用GEOJSON创建矢量图形 2、监控leaflet地图的放大缩小事件 zoomend 3、polyline 同时生成多条线的两种方式以及清楚 该文章是将在使用leaflet时对我有帮助的文章放在一起&#xff0c;以及对我自己在项目中常用的场景进行总结&#xff0c;方便下次快速查找 leafle…

hbuilder 使用夜神模拟器运行app

一、下载安装&#xff1a;https://www.yeshen.com/ 二、打开开发者模式&#xff08;参考链接&#xff1a;https://www.cnblogs.com/Sophia-Sophia/p/6100608.html&#xff09; 1&#xff0c;打开夜神模拟器&#xff0c;进入屏幕上的[设置]&#xff0c;如图 2&#xff0c;划到…