prettier 与 eslint 对函数名后的空格处理冲突
...小于 1 分钟
prettier 与 eslint 对函数名后的空格处理冲突
背景
给一个老项目添加功能,修改后保存,直接报 Module Warning(from./node modules/eslint-loader/index.js):error:Missing space beforefunction parentheses(space-before-function-paren)。
原因是我的 vscode 默认使用 prettier,prettier 格式化 javaScript 代码之后,默认不会在函数与 () 添加空格,而 eslint 默认情况下则要求函数与 () 之间必须有一个空格。处理起来大概有这么几种方案:
保留空格的方案配置
- 在 VSCode 的 settings.json 文件中添加如下配置。
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
保存后,重启 VSCode。原理是当保存时,eslint-loader 会自动修复代码,使其符合 eslint 的规则。
- 直接安装一个 Prettier-Standard - JavaScript formatter 插件,然后将 JavaScript 的默认格式化工具设置为此插件。
不保留空格的方案
在 .eslintrc.js 文件中的 rules 下添加如下配置。
"space-before-function-paren": 0
提示
如果对代码格式要求不是特别严格,直接用最后一种方法最简单。