๐ Svelte DX๋ฅผ ํฅ์์ํค์ธ์: Vite Svelte Inspector ๊ฐ์ด๋
Source: Dev.to
์์ ๋งํฌ์ ํฌํจ๋ ์ ์ฒด ํ ์คํธ๋ฅผ ์ ๊ณตํด ์ฃผ์๋ฉด, ํด๋น ๋ด์ฉ์ ํ๊ตญ์ด๋ก ๋ฒ์ญํด ๋๋ฆฌ๊ฒ ์ต๋๋ค. (์ฝ๋ ๋ธ๋ก, URL, ๋งํฌ๋ค์ด ํ์ ๋ฑ์ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.)
์๊ฐ
๋ธ๋ผ์ฐ์ ์์ UI ์์๋ฅผ ๋ฐ๋ผ๋ณด๋ฉฐ, ๊ทธ ์์๊ฐ ์ ํํ ์ด๋ค ์ปดํฌ๋ํธ ํ์ผ์ ์๋์ง ๊ถ๊ธํด ๋ณธ ์ ์ด ์๋์?
Svelte์ Vite๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, ๋ฐ๋ก ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ฃผ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ์์ต๋๋ค: @sveltejs/vite-plugin-svelte-inspector.
์ด ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐ ์ค์ ๋ธ๋ผ์ฐ์ ์ ์ง์ DOM ์ธ์คํํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ํ์ฑํํ๋ฉด ์์ ์์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค ํ์ผ ๊ฒฝ๋ก๋ฅผ ํ์ธํ๊ณ , ํด๋ฆญํ๋ฉด ํด๋น ์์น๋ฅผ ์๋์ผ๋ก ์ฝ๋ ํธ์ง๊ธฐ์์ ์ด ์ ์์ต๋๋ค.
์ค์
@sveltejs/vite-plugin-svelte๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ์ธ์(ํผ์ด ์์กด์ฑ์ ๋๋ค).- ์ธ์คํํฐ๋ Svelte ์ค์ ๋ก์ง์ ๋ด์ฅ๋์ด ์์ผ๋ฏ๋ก ์ต์ ๋ฒ์ ์ Svelte/Vite๋ฅผ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด ๋ณ๋์ ํจํค์ง๊ฐ ํ์ํ์ง ์์ต๋๋คโ๊ทธ๋ฅ ํ์ฑํํ๋ฉด ๋ฉ๋๋ค.
๊ธฐ๋ณธ ํ์ฑํ
// svelte.config.js
export default {
vitePlugin: {
inspector: true
}
};
์ฌ์ฉ์ ์ ์ ๊ตฌ์ฑ
์ธ์คํํฐ๋ฅผ ํ ๊ธํ๋ ๋ฐฉ๋ฒ์ด๋ ๋ฒํผ ์์น๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด, ๋ถ๋ฆฌ์ธ ๋์ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ์ธ์:
// svelte.config.js
export default {
vitePlugin: {
inspector: {
toggleKeyCombo: 'alt-x',
showToggleButton: 'always',
toggleButtonPos: 'bottom-right'
}
}
};
ํ๊ฒฝ ๋ณ์
์ต์
์ ํ๊ฒฝ ๋ณ์(์ ๋๋ .env ํ์ผ)๋ฅผ ํตํด์๋ ์ค์ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ค์ ํ์ผ๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
# Set a custom key combo (unquoted string)
SVELTE_INSPECTOR_TOGGLE=alt-x
# Pass a full JSON options object
SVELTE_INSPECTOR_OPTIONS='{"holdMode": false, "toggleButtonPos": "bottom-left"}'
# Disable it completely for your machine
SVELTE_INSPECTOR_OPTIONS=false
์ฌ์ฉ ๊ฐ๋ฅํ ์ต์
| ์ต์ | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|---|
toggleKeyCombo | string | 'alt-x' | ๊ฒ์ฌ๊ธฐ๋ฅผ ์ผ๊ณ ๋๋ ๋จ์ถํค. ํ: control-shift-o ์ ๊ฐ์ด ์์ ์์ ํค๋ฅผ ์กฐํฉํด ์ฌ์ฉํ์ธ์. |
showToggleButton | 'always' | 'active' | 'never' | 'active' | ํ๋ฉด์ ํ์๋๋ UI ๋ฒํผ์ ์ ์ดํฉ๋๋ค. |
toggleButtonPos | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-right' | ๋ ๋ค๋๋ ๋ฒํผ์ ์์น๋ฅผ ์ง์ ํฉ๋๋ค. |
holdMode | boolean | true | true์ด๋ฉด ํ ๊ธ ํค๋ฅผ ๋๋ฅด๊ณ ์๋ ๋์๋ง ๊ฒ์ฌ๊ธฐ๊ฐ ํ์ฑํ๋๊ณ , false์ด๋ฉด ํค๊ฐ ์ค์์น ์ญํ ์ ํฉ๋๋ค. |
customStyles | boolean | true | ํ์ฑํ๋ ๋ ๊ธฐ๋ณธ ์คํ์ผ์ ์ฝ์
ํฉ๋๋ค. ์ง์ ์คํ์ผ์ ๋ชจ๋ ์ ๊ณตํ๋ ค๋ฉด false๋ก ์ค์ ํ์ธ์. |
navKeys | object | { parent: 'ArrowUp', child: 'ArrowDown', next: 'ArrowRight', prev: 'ArrowLeft' } | DOM ํธ๋ฆฌ ๋ด์์ ํค๋ณด๋ ํ์์ ์ํ ํค ๋งคํ์ ๋๋ค. |
openKey | string | 'Enter' | ์ ํํ ์์์ ํธ์ง๊ธฐ๋ฅผ ์ฌ๋ ํค์ ๋๋ค. |
escapeKeys | array | ['Backspace', 'Escape'] | ๊ฒ์ฌ๊ธฐ๋ฅผ ๋ซ๋ ํค๋ค์ ๋๋ค. |
ํ์ ๋ฐ ์ ๊ทผ์ฑ
ํค๋ณด๋๋ก DOM ํธ๋ฆฌ๋ฅผ ํ์ํ ์ ์์ต๋๋ค:
- ๋ถ๋ชจ:
ArrowUp - ์์:
ArrowDown - ๋ค์ ํ์ :
ArrowRight - ์ด์ ํ์ :
ArrowLeft
Enter ๋ฅผ ๋๋ฌ ํธ์ง๊ธฐ๋ฅผ ์ด๊ณ , Backspace ๋๋ Escape ๋ฅผ ๋๋ฌ ๊ฒ์ฌ๊ธฐ๋ฅผ ๋ซ์ต๋๋ค.
์คํ์ผ๋ง
customStyles๊ฐ ํ์ฑํ๋๋ฉด ํ๋ฌ๊ทธ์ธ์ด ์ต์ํ์ ์คํ์ผ์ํธ๋ฅผ ์ฝ์
ํฉ๋๋ค. ์ง์ ์คํ์ผ๋งํ๊ณ ์ถ๋ค๋ฉด:
- โ ์
svelte-inspector-enabledํด๋์ค๋ฅผ ๋ฐ์ต๋๋ค. - ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฐ ์์๋
svelte-inspector-active-targetํด๋์ค๋ฅผ ๋ฐ์ต๋๋ค.
์ด ํด๋์ค๋ค์ ์์ฒด CSS์์ ํ๊ฒํ ํ์ฌ ์์, ํ ๋๋ฆฌ ๋ฑ์ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค.
ํธ์ง๊ธฐ ํตํฉ
โํด๋ฆญโํฌโ์คํโ ๊ธฐ๋ฅ์ ์ฌ์ฉ ์ค์ธ ํธ์ง๊ธฐ๊ฐ ์ธ์๋๋์ง์ ์์กดํฉ๋๋ค. VSโฏCode, WebStorm ๋ฑ๊ณผ ๊ฐ์ ํ์ค ํธ์ง๊ธฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋ฉ๋๋ค. ํธ์ง๊ธฐ๊ฐ ์ด๋ฆฌ์ง ์์ ๊ฒฝ์ฐ:
- ํ๋ฌ๊ทธ์ธ README์ ์๋ Supported Editors ๋ชฉ๋ก์ ํ์ธํ์ธ์.
- Custom Editor ์ง์นจ์ ๋ฐ๋ผ ํน์ ๋ฐ์ด๋๋ฆฌ ๊ฒฝ๋ก๋ ๋ช ๋ น์ ์ค์ ํ์ธ์.
๊ฒฐ๋ก
๋๋ฒ๊น
์ ์ฆ๊ธฐ์ธ์! ๐โก๏ธโจ
๊ฐ์ฅ ์ต์ ์ต์
๊ณผ ์ธ๋ถ ์ฌํญ์ GitHub์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.