λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT

[Plugins] Vite Plugins

by πŸ’²πŸŽ΅βœ–οΈβœ”οΈβ˜Ό 2022. 11. 23.
728x90

Vite ν”ŒλŸ¬κ·ΈμΈ: ν”„λ‘œμ νŠΈ μ΅œμ ν™”λ₯Ό μœ„ν•œ 상세 μ„€λͺ…κ³Ό μΆ”κ°€ μΆ”μ²œ ν”ŒλŸ¬κ·ΈμΈ

ViteλŠ” λΉ λ₯Έ 개발 속도와 μ΅œμ ν™”λœ λΉŒλ“œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ œκ³΅ν•˜λŠ” λ„κ΅¬λ‘œ, λ‹€μ–‘ν•œ ν”ŒλŸ¬κ·ΈμΈμ„ ν™œμš©ν•˜μ—¬ ν”„λ‘œμ νŠΈμ˜ 생산성을 높일 수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜μ—μ„œλŠ” λͺ‡ 가지 μ£Όμš” Vite ν”ŒλŸ¬κ·ΈμΈμ„ μžμ„Ένžˆ μ„€λͺ…ν•˜κ³ , μΆ”κ°€λ‘œ μœ μš©ν•œ ν”ŒλŸ¬κ·ΈμΈμ„ μ†Œκ°œν•©λ‹ˆλ‹€.

1. vite-plugin-checker

μ„€λͺ…:

vite-plugin-checkerλŠ” ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©λ˜λŠ” μ£Όμš” 도ꡬ듀을 worker thread λ‚΄μ—μ„œ μ‹€ν–‰ν•˜μ—¬ μ„±λŠ₯을 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€. Typescript, VLS(Vetur Language Server), vue-tsc, ESLint, Stylelintλ₯Ό λ³‘λ ¬λ‘œ μ²˜λ¦¬ν•¨μœΌλ‘œμ¨ 개발 ν™˜κ²½μ„ μ΅œμ ν™”ν•©λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import Checker from 'vite-plugin-checker';

export default {
  plugins: [
    Checker({ typescript: true, vue: true, eslint: true, stylelint: true }),
  ],
};

2. vite-plugin-vue-layouts

μ„€λͺ…:

vite-plugin-vue-layoutsλŠ” Vue 3 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λΌμš°ν„° λ ˆμ΄μ•„μ›ƒμ„ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 효과적인 λ„κ΅¬μž…λ‹ˆλ‹€. λ ˆμ΄μ•„μ›ƒ κ°„μ˜ μ „ν™˜μ΄λ‚˜ λΌμš°νŒ…μ— 따라 λ™μ μœΌλ‘œ λ ˆμ΄μ•„μ›ƒμ„ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import VueLayouts from 'vite-plugin-vue-layouts';

export default {
  plugins: [
    VueLayouts(),
  ],
};

3. vite-plugin-pages

μ„€λͺ…:

vite-plugin-pagesλŠ” 파일 μ‹œμŠ€ν…œ 기반의 λΌμš°νŒ…μ„ μ œκ³΅ν•˜μ—¬ 동적인 νŽ˜μ΄μ§€ λΌμš°νŒ…μ„ μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. vite-plugin-vue-layouts와 ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ 효과적인 λΌμš°νŒ…μ„ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import VuePages from 'vite-plugin-pages';

export default {
  plugins: [
    VuePages(),
  ],
};

4. unplugin-vue-components

μ„€λͺ…:

unplugin-vue-componentsλŠ” Vue μ»΄ν¬λ„ŒνŠΈμ˜ μžλ™ μž„ν¬νŒ…μ„ λ‹΄λ‹Ήν•˜λŠ” ν”ŒλŸ¬κ·ΈμΈμž…λ‹ˆλ‹€. μ»΄ν¬λ„ŒνŠΈλ₯Ό μˆ˜λ™μœΌλ‘œ μž„ν¬νŠΈν•˜μ§€ μ•Šκ³  μžλ™μœΌλ‘œ λ‘œλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import { VueComponents } from 'unplugin-vue-components/vite';

export default {
  plugins: [
    VueComponents(),
  ],
};

5. vite-plugin-style-import

μ„€λͺ…:

vite-plugin-style-importλŠ” μ»΄ν¬λ„ŒνŠΈ 라이브러리 μŠ€νƒ€μΌμ„ ν™˜κ²½μ— 따라 μžλ™μœΌλ‘œ μž„ν¬νŠΈν•  수 μžˆλ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€. λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ μŠ€νƒ€μΌμ„ μžλ™μœΌλ‘œ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import ViteStyleImport from 'vite-plugin-style-import';

export default {
  plugins: [
    ViteStyleImport(),
  ],
};

6. vite-plugin-html

μ„€λͺ…:

vite-plugin-html은 HTML을 효과적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. HTML μ••μΆ•, EJS ν…œν”Œλ¦Ώ, 닀쀑 νŽ˜μ΄μ§€ 지원 등을 μ œκ³΅ν•˜μ—¬ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ HTML μž‘μ—…μ„ μš©μ΄ν•˜κ²Œ ν•©λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import ViteHtmlPlugin from 'vite-plugin-html';

export default {
  plugins: [
    ViteHtmlPlugin(),
  ],
};

7. vite-plugin-inspect

μ„€λͺ…:

vite-plugin-inspectλŠ” Vite ν”ŒλŸ¬κ·ΈμΈμ˜ 쀑간 μƒνƒœλ₯Ό κ²€μ‚¬ν•˜μ—¬ 디버깅 및 ν”ŒλŸ¬κ·ΈμΈ κ°œλ°œμ— 도움을 μ£ΌλŠ” λ„κ΅¬μž…λ‹ˆλ‹€. ν”ŒλŸ¬κ·ΈμΈμ˜ λ™μž‘μ„ μ‹œκ°μ μœΌλ‘œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import ViteInspect from 'vite-plugin-inspect';

export default {
  plugins: [
    ViteInspect(),
  ],
};

8. vite-plugin-vue-inspector

μ„€λͺ…:

vite-plugin-vue-inspectorλŠ” λΈŒλΌμš°μ €μ—μ„œ Vue μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό ν΄λ¦­ν•˜λ©΄ 둜컬 IDE둜 μžλ™μœΌλ‘œ 이동할 수 μžˆλŠ” νŽΈλ¦¬ν•œ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό μ‰½κ²Œ 디버깅할 수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import VueInspector from 'vite-plugin-vue-inspector';

export default {
  plugins: [
    VueInspector(),
  ],
};

9. vite-plugin-vue-markdown

μ„€λͺ…:

vite-plugin-vue-markdown은 Markdown을 Vue μ»΄ν¬λ„ŒνŠΈλ‘œ μ‚¬μš©ν•˜κ³  Vue μ»΄ν¬λ„ŒνŠΈλ₯Ό Markdownμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€. λ¬Έμ„œν™” μž‘μ—…μ„ 효과적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import VueMarkdown from 'vite-plugin-vue-markdown';

export default {
  plugins: [
    VueMarkdown(),
  ],
};

10. vite-plugin-fonts

μ„€λͺ…:

vite-plugin-fontsλŠ” Viteλ₯Ό μœ„ν•œ μ›Ήν°νŠΈ λ‘œλ”λ‘œ, μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν•„μš”ν•œ 폰트λ₯Ό 효과적으둜 λ‘œλ“œν•˜κ³  μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// vite.config.js
import ViteFonts from 'vite-plugin-fonts';

export default {
  plugins: [
    ViteFonts(),
  ],
};

11. rollup-plugin-visualizer (선택적 - λ‘€μ—…)

μ„€λͺ…:

rollup-plugin-visualizerλŠ” λ²ˆλ“€λ§λœ 파일이 μ–Όλ§ˆλ‚˜ λ§Žμ€ 곡간을 μ°¨μ§€ν•˜κ³  μžˆλŠ”μ§€ μ‹œκ°μ μœΌλ‘œ 확인할 수 μžˆλŠ” λ„κ΅¬μž…λ‹ˆλ‹€. λ²ˆλ“€ 크기 μ΅œμ ν™”μ— 도움이 λ©λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œ:

// rollup.config.js
import Visualizer from 'rollup-plugin-visualizer';

export default {
  plugins: [
    Visualizer(),
  ],
};

μ΄λŸ¬ν•œ ν”ŒλŸ¬κ·ΈμΈλ“€μ„ μ‘°ν•©ν•˜μ—¬ Vite 기반의 ν”„λ‘œμ νŠΈλ₯Ό 효과적으둜 κ΅¬μ„±ν•˜κ³  μ΅œμ ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ μš”κ΅¬μ— 따라 ν•„μš”ν•œ ν”ŒλŸ¬κ·ΈμΈμ„ μ„ νƒν•˜κ³  적절히 ν™œμš©ν•˜μ—¬ 개발 생산성을 ν–₯μƒμ‹œμΌœλ³΄μ„Έμš”.

λŒ“κΈ€