vue3+ts,使用eslint和prettier后,不能检查(lint)也不能修复(fix).vue文件的解决方法总结,以及本人遇到的问题

815 阅读2分钟

在看尚硅谷的vue3+ts的硅谷甄选项目时,遇到的问题。ts文件可以检查到并修复,但.vue文件都不行。在网上看到很多解决方法

1、版本问题。似乎eslint4和prettier3不兼容,因为我好像没问题,就没有试过。

我的eslint和prettier版本

    "@typescript-eslint/eslint-plugin": "^6.0.0",
    "@typescript-eslint/parser": "^6.0.0",
    "@vitejs/plugin-vue": "^4.1.0",
    "eslint": "^8.5.0",
    "eslint-config-prettier": "^8.6.0",
    "eslint-plugin-import": "^2.27.5",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-vue": "^9.9.0",
    "prettier": "^2.8.7",

2、要在prettier插件里面取消一个选项(如图)。因为我们自己配置了.prettierrc.json文件,所以把图中标红的按钮取消掉。但我当时这个框是否勾选,也无法解决问题。

image.png

3、比较基础的错误,把.prettierrc.json文件建在了src里面,或者文件名打错字

4、看到有人在.eslintrc.cjs的plugins里面配置了:'html',"prettier"(如下代码) ,反正我安装后试了,没用。

['html','vue', "prettier",'@typescript-eslint'],

上面代码没用,我又换回了原本的代码

plugins: ['vue','@typescript-eslint'],

也有人说plugins配置要放在extends的后面,但我顺序是正确的

5、我的问题是package.json文件里面,代码有误,

老师的代码是:

"scripts": {
    "lint": "eslint src",
    "fix": "eslint src --fix"
  },

修改后的代码是:

"scripts": {
    "lint": "eslint --ext .js,.vue src",
    "fix": "eslint --fix --ext .js,.vue src"
  },

然后通过 pnpm run lint 就能检查到语法和格式的错误 通过 pnpm run fix 就能修复错误

补充:

如果要手动格式化代码,则要修改一下默认的格式化程序

首先右键

image.png

然后选择prettier image.png

之后就可以直接使用快捷键或右键格式化了

个人总结:

这个问题困扰了我好久。首先是解决问题的方法使用错了:我最开始搜的关键词是 eslint和prettier不兼容(因为浏览器搜索推荐的这些关键字),eslint和prettier不生效,eslint和prettier对vue文件失效等等等。最后我直接失望了,决定重新开一个项目,按别人的方法重新安装配置eslint和prettier,诶!这时就找到问题所在了,因为本人是菜鸟,对于配置方面不是很懂,只会照葫芦画瓢,即使老师的代码出现了问题,我也看不出来,甚至不知道从何下手。所以,寻找问题的时候,不要只纠结于当下的bug,试试溯源法,换个方式问问题。参考的是这篇文章的第五点,感谢这位大佬Vscode + Vue3 + Typescript+Volar 架构如何使用Eslint规范前端项目不良代码风格? - 知乎 (zhihu.com)