vue3之 eslint、hooks、Prettier的安装与使用(实现代码校验)

本文详细介绍了在Vue3项目中如何配置和使用ESLint、Prettier以及GitHook。首先,列举了安装ESLint及其相关依赖的步骤,并展示了.eslintrc.js的配置,特别提到了如何处理全局变量如onMounted。接着,讨论了如何设置.eslintignore文件以忽略特定目录。然后,提到了GitHook的配置,包括husky的安装和pre-commit、commit-msg钩子的使用,确保在提交前执行代码校验。最后,提及了Prettier的配置,用于代码格式化。整个过程旨在提升项目代码质量和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue3之 eslint的安装与使用

  • eslintrc-auto-import.json配置
    • 作用:就是使用了 AutoImport 自动引入了,eslint对此也不会报错
    • .eslintrc.js extends: './.eslintrc-auto-import.json' ],

eslint的安装依赖

  "devDependencies": {
    "eslint": "7.32.0",
    "eslint-config-prettier": "8.3.0",
    "eslint-define-config": "1.2.0",
    "eslint-plugin-import": "2.25.3",
    "eslint-plugin-prettier": "4.0.0",
    "eslint-plugin-vue": "8.1.1",
    "typescript":"4.5.4",
    "@typescript-eslint/eslint-plugin": "5.5.0",
    "@typescript-eslint/parser": "5.5.0"
  }
  • npm i 初始化依赖

.eslintrc.js 的配置

  • eslint的报错:变量未定义时,也就是no-undef 可以再rules之中配置
  • globals: {
    onMounted: true, // 设置为 true 则再组件之中不需要引入 不会标记错误
    },
    在这里插入图片描述
module.exports = {
  root: true,
  env: {
    commonjs: true,
    es6: true,
  },
  globals: {
    onMounted: true, // 设置为 true 则再组件之中不需要引入 不会标记错误
  },
  plugins: ['prettier', '@typescript-eslint', 'import'],
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:vue/vue3-recommended',
    'prettier',
    './.eslintrc-auto-import.json', // 作用:就是读取 .eslintrc-auto-import.json 的配置 因此涉及到的变量也就不会报错
    // './tests/.eslintrc-unit-test.json'
  ],
  // parser: 'vue-eslint-parser',
  // 解析规则
  parserOptions: {
    parser: '@typescript-eslint/parser',
    // parser: "vue-eslint-parser",
    sourceType: 'module',
    // ecmaFeatures: {
    //   jsx: true,
    //   tsx: true
    // }
  },
  rules: {
    // 0不报错, 1代表警告 2代表错误
    // 'no-undef': [2], // 变量未定义 
    //close lf error
    // 'import/no-unresolved': [0],
    // 'vue/multi-word-component-names': 'off',
    // 'vue/no-deprecated-router-link-tag-prop': 'off',
    // 'import/extensions': 'off',
    // 'import/no-absolute-path': 'off',
    // 'no-async-promise-executor': 'off',
    // 'import/no-extraneous-dependencies': 'off',
    // 'vue/no-multiple-template-root': 'off',
    // 'vue/html-self-closing': 'off',
    // 'no-console': 'off',
    // 'no-plusplus': 'off',
    // 'no-useless-escape': 'off',
    // 'no-bitwise': 'off',
    // '@typescript-eslint/no-explicit-any': ['off'],
    // '@typescript-eslint/explicit-module-boundary-types': ['off'],
    // '@typescript-eslint/ban-ts-comment': ['off'],
    // 'vue/no-setup-props-destructure': ['off'],
    // '@typescript-eslint/no-empty-function': ['off'],
    // 'vue/script-setup-uses-vars': ['off'],
    // //can config  to 2 if need more then required
    // '@typescript-eslint/no-unused-vars': [0],
    // 'no-param-reassign': ['off']
  }
}

.eslintignore

public
node_modules
.history
.husky
dist
*.d.ts

配置好这些后 重启vscode ( 需要重启vscode )

ctrl + shift + P
选择 REload Window

App.vue

<template>
  <img alt="Vue logo" src="./assets/logo.png" />
  <HelloWorld msg="Hello Vue 3 + Vite" />
</template>
<script setup>
import HelloWorld from './components/HelloWorld.vue'
import {  } from 'vue'
onMounted(() => {
  console.log('1', import.meta.env) // 获取到环境 相关的配置
})
const a = ref(0)
console.log('aaa', a.value)
useCommon()

</script>

vue3之 git hook的使用

  • package.json
    • “prepare”: “husky install” 脚本指令,需要等依赖安装后,加入,运行( 鼠标 悬浮于 prepare 上方,右键,点击运行脚步 )
  "scripts": {
    "prepare": "husky install"
  },
  "devDependencies": {
    "husky":"7.0.2"
  }
  • npm i
  • 执行 git init 初始化 git
  • 运行 prepare 脚本后,npm run prepare
    • 会产生 .husky 文件目录等文件
      在这里插入图片描述
  • husky / pre-commit ( pre-commit文件作用:就是再git commit之前会执行这个文件 )
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

# echo "pre-commit被执行了" -> pre-commit文件作用:就是再git commit之前会执行这个文件

#推送之前运行eslint检查
npm  run lint
##推送之前运行单元测试检查
#npm run test:unit
  • husky / commit-msg
#!/bin/sh
#. "$(dirname "$0")/_/husky.sh"
#在项目中我们会使用commit-msg这个git hook来校验我们commit时添加的备注信息是否符合规范。在以前的我们通常是这样配置:
#--no-install 参数表示强制npx使用项目中node_modules目录中的commitlint包(如果需要开启,注意:需要安装npx)
#npx --no-install commitlint --edit $1
  • eslint 的校验命令
  "scripts": {
    "lint": "eslint --ext .js,.jsx,.vue,.ts,.tsx src --fix"
  },
  • 配置以上之后,再执行 git commit -m "XXX" 会先执行一下 eslint校验代码是否符合,符合可以提交,不符合不给提交
    在这里插入图片描述

vue3 之 Prettier 使用

  • package.json
 "devDependencies": {
    "prettier":"^2.2.1"
  }
  • npm i
  • 目录下新增 .prettierrc 文件
{
  "useTabs": false,
  "tabWidth": 2,
  "printWidth": 120,
  "singleQuote": true,
  "trailingComma": "none",
  "bracketSpacing": true,
  "semi": false,
  "htmlWhitespaceSensitivity": "ignore"
}
  • 注意点:设置默认格式化未 prettier
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值