设置vsCode
安装插件:ESList和Prettier-Code formatter
修改settings.json:
"editor.formatOnSave": true,
"eslint.validate": [
"vue",
"html",
"javascript",
"typescript",
"javascriptreact",
"typescriptreact"
],
"files.associations": {
"*.js": "javascriptreact"
},
安装依赖
eslint
yarn add eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-plugin-react --dev
prettier
yarn add --dev prettier eslint-config-prettier eslint-plugin-prettier
修改配置
新建.eslintrc.js并在package.json里面删除eslintConfig
module.exports = {
parser: '@typescript-eslint/parser', // 指定ESLint解析器
extends: [
'plugin:react/recommended', // 使用来自 @eslint-plugin-react 的推荐规则
'plugin:@typescript-eslint/recommended', // 使用来自@typescript-eslint/eslint-plugin的推荐规则
'prettier/@typescript-eslint', // 使用 ESLint -config-prettier 禁用来自@typescript-eslint/ ESLint 与 prettier 冲突的 ESLint 规则
'plugin:prettier/recommended',
],
parserOptions: {
ecmaVersion: 2018, // 允许解析最新的 ECMAScript 特性
sourceType: 'module', // 允许使用 import
ecmaFeatures: {
jsx: true, // 允许对JSX进行解析
},
},
rules: {
// 自定义规则
// e.g. "@typescript-eslint/explicit-function-return-type": "off",
},
settings: {
react: {
version: 'detect', // 告诉 eslint-plugin-react 自动检测 React 的版本
},
},
};
新建.prettierrc.js并添加
{
semi: true,
trailingComma: 'all',
singleQuote: true,
printWidth: 120,
tabWidth: 4,
}
这样配置完后,如果保存还是不能格式化,可能是vscode的默认formatter不是prettier。这时候可以按CTRL + SHIFT + P
,输入format然后选择Format Document,点击弹出框的按钮configure,然后选择pretter.
添加格式化命令
在packgage.json里面添加script标签
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint --fix .",
"format": "prettier --write \"**/*.+(js|jsx|json|css|md)\""
},
添加commit命令
添加在commit之前自动化格式代码, 这样会在commit的时候速度比较慢,但是有利于保证代码仓库的质量。
添加依赖
yarn add --dev lint-staged husky
修改package.json
"lint-staged": {
"*.+(js|jsx)": [
"eslint --fix",
"git add"
],
"*.+(json|css|md)": [
"prettier --write",
"git add"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
只使用eslint进行格式化
如果我们选择只使用eslnit,需要先disable这个插件Prettier-Code formatter,然后在settings.json里面加入
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
参考链接:https://www.digitalocean.com/...
https://cloud.tencent.com/dev...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。