코드의 통일화를 위해서 매우 좋은 방법이다.

$ npm i -D eslint eslint-plugin-vue babel-eslint

extensions 에서 eslint 를 설치 해 주고서야 eslint 가 적용이 되었다.
// App.vue
<template>
  <h1>{{ message }}</h1>
  <HelloWorld />
</template> 

<script>
import HelloWorld from '~/components/HelloWorld'
 
export default {
  components: {
    HelloWorld
  },
  data() {
    return {
      message: 'Hello vue!!'
    }
  },
}
</script>
// HelloWorld.vue
<template>
  <img 
    src="~assets/logo.png" 
    alt="HEROPY" />
  <div></div>
</template>
// .eslintrc.js
module.exports = {
  env: {
    browser: true,
    node: true,
  },
  extends: [
    // vue
    // 'plugin:vue/vue3-essential', // Lv1
    'plugin:vue/vue3-strongly-recommended', // Lv2
    // 'plugin:vue/vue3-recommended', // Lv3
    // js
    'eslint:recommended'
  ],
  parserOptions: {
    // 코드를 분석하는 분석기
    parser: 'babel-eslint'
  },
  rules: {
    // 기본적으로 제공하는 extends를 사용한다면 굳이 써 줄 필요 없다.
    "vue/html-closing-bracket-newline": ["error", {
      "singleline": "never",
      "multiline": "never" // 닫는 브라켓을 마지막 새로운 줄에 작성하지 않아도 된다.
    }],
    "vue/html-self-closing": ["error", {
      "html": {
        "void": "always", // 빈 곳에 슬래쉬를 붙여라
        "normal": "never", // <div> </div> 안에 내용이 없다면 <div/> 로 해줘야만 한다. 가 싫어서 never
        "component": "always" // component 는 항상 슬래쉬를 붙여라
      },
      "svg": "always",
      "math": "always"
    }]
  }
}
// setting.json
"editor.codeActionsOnSave": {
        "source.fixAll.eslint": true,
  },