配置代码校验遇到的问题

127 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情

前言

上篇文章讲到,最近在写新的项目,然后是基于旧的项目改造的。

然后上篇文章讲了配置vue的代码校验遇到的问题,这篇文章主要是总结格式化工具的配置以及依赖的问题总结。

问题

配置prettier和eslint

因为之前项目是把校验关了,所以当我把lintOnSave开了之后,好家伙,满屏的错误,比如双引号,分号结尾,使用等号而不是全等等等

所以就想通过配置工具来帮我更改。

我用的编辑器是vscode,它的插件很多也很强大,这里可以使用插件来做代码自动化格式化。

代码格式化用的比较多的有2种,prettiereslint

image.png

image.png

安装好prettier后,然后在vscode的settings.json配置规则。(通过ctrl或command + shift + p打开settings.json

    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "prettier.semi": false,
    "prettier.singleQuote": true,
    "prettier.trailingComma": "none"

默认格式化为prettier,然后去除分号,使用单引号,以及句尾不要有逗号,还有其它规则,可以看这里

大部分规则都能满足了。但是有个问题无法解决,没有看到配置项。就是函数的名称和参数的括号不能保持空格。 这个和eslint的规则有冲突。

可以通过"javascript.format.insertSpaceBeforeFunctionParenthesis": true解决,但是得设置"vetur.format.defaultFormatter.js": "vscode-typescript",不是prettier

下面再来看看eslint。

开启eslint格式化校验(在settings.json中加入)

  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }

如果你想修改规则,可以在项目的.eslintrc.js里配置。

Cannot read property 'range' of null

项目运行的时候突然报了错,错误信息是Cannot read property 'range' of null。但是我搜索整个项目,并没有发现有使用range这个字段。

后面查阅资料,可能是babel-eslint的版本不兼容。我使用的是10.0.1,然后我把它降级到7.2.3

"babel-eslint": "^7.2.3"

再运行,就没有报错了。