记录vue-cli3.0+typescript项目:Eslint+prettier遇到的一些报错以及得到的解决方法
1、一直报错 error Delete ‘........’,或者是warning Delete、warning Insert ‘..’这种找不到问题的错误
解决方法 可执行代码:npm run lint --fix
2、typescript数据指定类型一直报错意外的类型这种问题
这里是因为我没有配置typescrpt,需要在.prettierrc.js加上配置parser: 'typescript'
然后重新启动项目就可以了
3、发现怎么配置度有很多报错,查了各种资料原来是.prettierrc.js和.eslintrc.js配置问题,一开始去配置tslint.json,但是很多博主都说eslint停止维护了不用他,这里上一下新的.prettierrc.js和.eslintrc.js配置文档,1-2作为记录就不删除了,以便以后回顾时候看看自己走过的路
eslint 的原理是,先解析代码 AST 语法树,再对其分析以发现代码质量和风格问题。
因此需要指定 parser,来解析代码语法。
一方面,我们得让 eslint 理解 vue 的语法。因此 parser 的值需要设置为 ’vue-eslint-parser‘
推荐设置 "extends": ["plugin:vue/base"] 或 "extends": ["plugin:vue/base"] ,该设置同时设置了vue 语法解析器 和 eslint 规则
这里有个需要注意的地方,parser 不能再指定别的值,否则会报错 "Use the latest vue-eslint-parser"(https://vuejs.github.io/eslint-plugin-vue/user-guide/#faq)
另一方面,我们还得让 eslint 理解 typescript 的语法。所以作为补充,需要添加配置 parserOptions: { parser: '@typescript-eslint/parser' }
module.exports = {
printWidth: 120, // 换行字符串阈值
tabWidth: 4, // 设置工具每一个水平缩进的空格数
singleQuote: true, // 用单引号
semi: false, // 句末是否加分号
trailingComma: 'none', // 最后一个对象元素加逗号
bracketSpacing: true, // 对象,数组加空格
jsxBracketSameLine: true, // jsx > 是否另起一行
arrowParens: 'always', // (x) => {} 是否要有小括号
parser: 'typescript' // 指定使用哪一种解析器
}
module.exports = {
root: true,
env: {
node: true
},
extends: [
'plugin:vue/essential',
"plugin:prettier/recommended",
'@vue/prettier',
'eslint:recommended',
'@vue/typescript/recommended',
'@vue/prettier/@typescript-eslint'
],
rules: {
'no-console': process.env.NODE\_ENV \=== 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE\_ENV \=== 'production' ? 'warn' : 'off',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'prefer-const': 'off'
},
/* 指定如何解析语法。可以为空,但若不为空,只能配该值*/
parser: 'vue-eslint-parser',
parserOptions: {
ecmaVersion: 2020,
parser: '@typescript-eslint/parser'
},
overrides: [
{
files: ['**\_\_tests\_\_\*.{j,t}s?(x)'],
env: {
mocha: true
}
}
]
}
但是启动项目以后还是会有warning,项目能启动,但是这个问题我查了很久都找不出解决办法,请问有大佬补充吗?
代码上是黄色的波浪线
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。