当前位置: 代码网 > it编程>编程语言>其他编程 > 如何解决vscode中ESLint和prettier冲突问题

如何解决vscode中ESLint和prettier冲突问题

2024年05月15日 其他编程 我要评论
注意:这个冲突问题一般是指在代码编辑器中出现的问题,这里使用的是vscode。在前端开发中,很多人使用 prettier 作为代码格式化工具,用 eslint 控制代码风格,以及检查错误。但是在同时使

注意:这个冲突问题一般是指在代码编辑器中出现的问题,这里使用的是vscode。

在前端开发中,很多人使用 prettier 作为代码格式化工具,用 eslint 控制代码风格,以及检查错误。

但是在同时使用 eslint 和 prettier 的时候,由于代码规则不一样就会发生冲突,发生冲突的原因是:在保存文件时,**eslint 先修复了代码符合 eslint 的代码风格,之后 prettier 又格式化了代码,导致代码不符合 eslint 规则了。**所以代码就会出现 eslint 的警告或报错提示。

起初想的是把 prettier 规则配置的和 eslint 一致,但是由于规则不一样,不可能完全兼容。

之后有一个折中的方法,在 vscode 中,如果把保存文件时不格式化文件开启,就不会自定调用 prettier 规则格式化代码了,这样就能符合 eslint 规范了。

但是还有一个问题是 eslint 修复主要针对的是 js 和 ts 的代码,对于其他的代码如 html、css 等文件还是得用 prittier,所以这种方法也有局限性。

解决方案1

在 vscode 中安装插件 prettier-eslint 插件,这个插件的工作原理是先使用 prettier 格式化,然后再使用 eslint 检查和修复,这样就能符合 eslint 代码风格了。

插件介绍链接:https://marketplace.visualstudio.com/items?itemname=rvest.vs-code-prettier-eslint

插件安装完成后,将此插件设置为工作区或用户中文件类型的默认格式化程序,在 vscode 配置文件中添加以下代码:

{
  // 保存时使用 eslint 修复可修复错误
  "editor.codeactionsonsave": {
    "source.fixall.eslint": true
  },
  // 定义一个默认格式化程序, 该格式化程序优先于所有其他格式化程序设置。必须是提供格式化程序的扩展的标识符。
  "editor.defaultformatter": "rvest.vs-code-prettier-eslint",
  // "editor.formatonpaste": false, // required
  // "editor.formatontype": false, // required
  // "editor.formatonsave": true, // optional
  // "editor.formatonsavemode": "file", // required to format on save
  // "files.autosave": "onfocuschange" // optional but recommended
}

配置完成后,重启 vscode 后生效。

解决方案2

在 vscode 中安装插件 pef: prettier & eslint formatter 插件,这个插件的工作原理是先使用 prettier 格式化,然后再使用 eslint 检查和修复,这样就能符合 eslint 代码风格了。

插件介绍链接:https://marketplace.visualstudio.com/items?itemname=jonwolfe.prettier-eslint-formatter

插件安装完成后,将此插件设置为工作区或用户中文件类型的默认格式化程序,在 vscode 配置文件中添加以下代码:

{
  "[javascript]": {
    "editor.defaultformatter": "jonwolfe.prettier-eslint-formatter",
    "editor.codeactionsonsave": {
      "source.fixall.eslint": false
    }
  },
  "[javascriptreact]": {
    "editor.defaultformatter": "jonwolfe.prettier-eslint-formatter",
    "editor.codeactionsonsave": {
      "source.fixall.eslint": false
    }
  },
  "[typescript]": {
    "editor.defaultformatter": "jonwolfe.prettier-eslint-formatter",
    "editor.codeactionsonsave": {
      "source.fixall.eslint": false
    }
  },
  "[typescriptreact]": {
    "editor.defaultformatter": "jonwolfe.prettier-eslint-formatter",
    "editor.codeactionsonsave": {
      "source.fixall.eslint": false
    }
  }
}

总结 

到此这篇关于如何解决vscode中eslint和prettier冲突问题的文章就介绍到这了,更多相关vscode eslint和prettier冲突解决内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com