webstrom 适配 eslint 跟 prettier

2,459 阅读2分钟

万万没想到开箱即用的 webstorm 也有需要适配vscode+插件的一天,最近用 webstorm 发现部分 eslint 跟 prettier 没有应用项目中的配置,需要修改一些配置项,内容如下

一、适配 eslint

企业微信截图_17137678914924.png

配置位于 File->settings->Language & Frameworks->JavaScript->Code Quality->Eslint,需要打开Run eslint --fix on save

二、适配 prettier

注意使用的是 Javascript 还是 Typescript, 如果项目用的是 Javascript 修改的是 Javascript的配置,如果项目用的是 Typescript 修改的是 Typescript 的配置

我改了半天 Javascript 就是没生效,恍然意识到项目是 Typescript 的

webstrom 是自带的 prettier,需要修改一些与 Airbnb 规范 有出入的地方

以下的配置适用于右键-reformat code 的情况

1 对象前后空格

企业微信截图_17137532184092.png

File->settings->Code Style->JavaScript->Spaces->Within

import {Components} from 'react'
=> 
import { Components } from 'react'

2 对象换行

企业微信截图_17137553837764.png

3 句末添加分号

企业微信截图_17137561161473.png

三、适配项目中的 eslint / pretitter 配置 - 简便版

那么问题来了,我的项目中配置了 prettier.config.mjs ,怎么让 webstorm 适配这个配置呢。答案是需要进行自定义配置。

该方法更为简便,由评论区提出

eslint 右键 .eslintrc.cjs 配置,选择 Apply ESLint Code Style Rules

prettier 右键 prettier.config.mjs 配置,选择 Apply Prettier Code Style Rules

选择 setting -> Tools -> Actions on Save, 勾选 Run eslint --fix 和 Run Prettier 即可

企业微信截图_248e19cd-c2eb-4812-ae8a-caeb0f7f0fcd.png

四、适配项目中的 eslint / pretitter 配置 - 插件版

如果webstorm的版本比较低的话可能不支持简便版本,可以试试插件版本的方法,效果是一样的

1 安装file Watchers插件

打开setting,在plugin下安装file Watchers插件 企业微信截图_1714116461415.png

2 安装 file Watchers

点击 Tools/File Watchers, 点击 + ,再点击<custom>

df1f7c6ece1bb671bf9294731883ad13.jpg

3 编写eslint运行时自动修复

如图进行项目的配置,以下为 eslint --fix $FileName$ 的配置,就是在项目编写过程中运行这个配置使得 eslint 的提示能够出现, Name 随便取, File type 选择 Javascript,Program 选择自己项目中node_module\.bin\eslint, Arguments 填写 --fix $FileName$,勾选 Trigger the wacher regardless of syntas errors, 点击保存就可以了 企业微信截图_1714116642933.png

4 编写prettier运行时自动修复

如图进行项目的配置,以下为 prettier --write $FileName$ 的配置,就是在项目编写过程中运行这个配置使得 prettier 的提示能够出现, Name 随便取, File type 选择 Javascript,Program 选择自己项目中node_module\.bin\eslint, Arguments 填写 --write $FileName$,勾选 Trigger the wacher regardless of syntas errors, 点击保存就可以了 企业微信截图_17141170722092.png

如果想要每次运行时所有项目都格式化,可以把指令改为 prettier --write .,相应的Arguments 填写 --write .

四、参考

Autofix ESLint Issue on Webstrom 2016