在看尚硅谷的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文件,所以把图中标红的按钮取消掉。但我当时这个框是否勾选,也无法解决问题。
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 就能修复错误
补充:
如果要手动格式化代码,则要修改一下默认的格式化程序
首先右键
然后选择prettier
之后就可以直接使用快捷键或右键格式化了
个人总结:
这个问题困扰了我好久。首先是解决问题的方法使用错了:我最开始搜的关键词是 eslint和prettier不兼容(因为浏览器搜索推荐的这些关键字),eslint和prettier不生效,eslint和prettier对vue文件失效等等等。最后我直接失望了,决定重新开一个项目,按别人的方法重新安装配置eslint和prettier,诶!这时就找到问题所在了,因为本人是菜鸟,对于配置方面不是很懂,只会照葫芦画瓢,即使老师的代码出现了问题,我也看不出来,甚至不知道从何下手。所以,寻找问题的时候,不要只纠结于当下的bug,试试溯源法,换个方式问问题。参考的是这篇文章的第五点,感谢这位大佬Vscode + Vue3 + Typescript+Volar 架构如何使用Eslint规范前端项目不良代码风格? - 知乎 (zhihu.com)。