Vue3项目添加|Vue3项目添加 ESLint 和 Prettier
Vue3 + TS 项目中增加 ESLint 和 Prettier
背景
eslint 用于校验代码语法规范,保证项目质量;
prettier 用于保证项目代码的格式与风格;
Vue3 项目初始化
参考 搭建 Vite 项目
# npm 6.x
npm init vite@latest my-vue-app --template vue# npm 7+, 需要额外的双横线:
npm init vite@latest my-vue-app -- --template vue# yarn
yarn create vite my-vue-app --template vue# pnpm
pnpm create vite my-vue-app -- --template vue
ESLint
安装
npm add eslint -D
初始化
npx eslint --init
初始化过程中的交互选项:
(1) How would you like to use ESLint?
选择:To check syntax and find problems(2) What type of modules does your project use?
选择:JavaScript modules (import/export)(3) Which framework does your project use?
选择:Vue.js(4) Does your project use TypeScript?
选择:Yes(5) Where does your code run?
选择:Browser(6) What format do you want your config file to be in?
选择:JavaScript(7) Would you like to install them now?
选择:Yes(8) Which package manager do you want to use?
选择:pnpm / npm / yarn
按照这样选择会自动安装识别 vue 和 ts 文件所需的插件
初始化完成后会在项目根目录生成配置文件
.eslintrc.js
.eslintrc.js 配置 改写配置如下
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
"eslint:recommended",
"plugin:vue/vue3-essential",
"plugin:@typescript-eslint/recommended",
"prettier",
],
parser: "vue-eslint-parser",
parserOptions: {
ecmaVersion: "latest",
parser: "@typescript-eslint/parser",
sourceType: "module",
},
plugins: ["vue", "@typescript-eslint", "prettier"],
rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"@typescript-eslint/ban-types": "warn",
"@typescript-eslint/no-explicit-any": "off",
"vue/no-unused-vars": "warn",
"vue/multi-word-component-names": "warn",
},
};
script 配置
pakcage.json
中新增 script
如下"scripts": {
"lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix",
}
eslint . 为指定lint当前项目中的文件执行脚本即可使用 eslint 进行全局检查和修复
--ext 为指定lint哪些后缀的文件
--fix 开启自动修复
npm run lint
安装 VSCode 插件 ESLint 实现每次保存代码时,自动执行lint命令来修复代码的错误。
在项目中新建.vscode/settings.json文件,然后在其中加入以下配置。
{
// 开启自动修复
"editor.codeActionsOnSave": {
"source.fixAll": false,
"source.fixAll.eslint": true
}
}
Prettier
安装
npm install prettier -D
配置 在根目录下新建
.prettierrc.js
module.exports = {
// 一行的字符数,如果超过会进行换行,默认为 80
printWidth: 100,
// 一个缩进使用几个空格数
tabWidth: 2,
// 是否使用 tab 进行缩进,默认为 false,表示用空格进行缩减
useTabs: false,
// 是否在句尾使用分号
semi: true,
// 字符串是否强制使用单引号,默认为 false,使用双引号
singleQuote: false,
// 是否使用尾逗号,有三个可选值""
trailingComma: "es5",
// 对象大括号直接是否有空格,默认为 true,效果:{ foo: bar }
bracketSpacing: true,
// 处理换行符 lf,crlf,cr,auto
endOfLine: "auto",
// Object 对象中的引号处理方式
quoteProps: "consistent",
};
详细配置见 官方文档
script 配置 【Vue3项目添加|Vue3项目添加 ESLint 和 Prettier】
pakcage.json
中新增 script
如下"scripts": {
"format": "prettier --write \"./**/*.{html,vue,ts,js,json,md}\"",
}
安装 VSCode 插件 Prettier - Code formatter 安装该插件以实现在保存的时候自动完成格式化
在
.vscode/settings.json
中添加一下规则{
// 保存的时候自动格式化
"editor.formatOnSave": true,
// 默认格式化工具选择prettier
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
TODO:
ESLint 和 Prettier 的冲突问题
参考
- Prettier 配置
- ESLint 配置
- Typescript ESLint 配置
- eslint-plugin-vue 配置
- vue3+ts+vite项目中使用ESLint+prettier+stylelint+husky指南
推荐阅读
- 【小小的项目|【基于Java和Socket等技术的聊天室系统的设计与实现-----这或许就是QQ的原型之一吧!(效果+源码+论文+视频介绍等获取~!)】
- 项目实战|[笔记]Qt5+FFMpeg+Opencv 实现实时美颜直播推流《一》基础知识以及直播服务器配置
- 看财报|天原股份上半年净利增长超30%,业绩韧性强、锂电项目加速落地 | 看财报
- 创投日报|钛媒体Pro创投日报:9月1日收录投融资项目27起
- # 靠谱(开源IM项目OpenIM压测程序介绍-自己动手压测性能和稳定性)
- 项目销售实战技巧(我是如何做好差异化搞定客户的)
- vue|vue-vue3(4)-计算属性与监视computed,watch,watchEffect
- 大数据|大数据项目中数据倾斜
- vue|Vue3.0 使用 ant-design-vue
- 机器学习|机器学习项目实战——11集成学习算法之泰坦尼克号船员获救预测