背景
关于本篇博文提到的这个问题,我前段时间发表过一篇博文,后经过实际验证发现那篇博文的观点经不起推敲。经反思后对这个问题重新作出研究如下:
研究
我们知道vscode开发vue项目会安装vetur插件,这个插件能帮助我们高效地开发vue。
打开vetur的文档,可以看到它有这些特征如下图:
考虑到本篇博文的着重点,这里只研究箭头指向的两个特征(语法校正/错误检查、格式化)。
下面我们通过文档具体研究下这两个特征:
1、错误检查
我们来对这个特征作下验证:
可以看到代码出现语法错误的时候,vetur插件能给出如上图的提示。
我们在vscode setting.json中加入下图的配置:
结果如下:
2、语法校正
这段是说:vetur会默认加载特定的语法规则来校验项目(可以不做任何配置,就用它的默认规则),也可以配置eslint规则。
下面我们来按文档说的配置eslint规则的步骤来操作验证下:
按照文档上的配置操作后可以发现:代码中没有遵循eslint规则的语法都会给出提示!
3、格式化
文档中说vetur默认使用的是prettier格式化程序,所以我们可以在项目根目录新建一个.prettierrc文件来自定义一些规则。
现在回到博文的标题:vscode代码格式化与项目eslint冲突的问题。
分析下问题:vscode代码格式化这里是指vetur的格式化也就是prettier格式化程序(对应的是.prettierrc文件),项目eslint这里对应的是.eslintrc.js文件
转化下问题:解决冲突的思路也就是调整.prettierrc文件和.eslintrc.js文件的配置!
项目执行npm run lint命令校正了语法后,格式化文档又出现了错误提示如下图:
引号这个规则产生了冲突,我们可以修改.prettierrc配置文件如下:
这个时候格式化的结果如下:
可以看到错误消失了!
总结
1、vscode中编写vue项目用的是vetur插件,这个插件默认用的是prettier格式化程序,可以通过.prettierrc文件来配置调整vscode的格式化规则;
2、项目中的eslint通过.eslintric.js来配置规则
3、.eslintrc.js配置语法简单做个小结:
4、prettierrc配置参照官方文档:
prettier文档
5、 项目中很多不好的写法没有被改进,而是直接禁用了eslint规则,这样不利于代码风格的统一性,有时间需要优化下!