Language-tools: ์ž๋™ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ VSCode์—์„œ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 07์›” 09์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: sveltejs/language-tools

๋ฒ„๊ทธ ์„ค๋ช…
์ด๊ฒƒ์€ ์ˆœ์ „ํžˆ ๋ฏธ์ ์ž…๋‹ˆ๋‹ค. VScode์—์„œ ํŒŒ์ผ ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ƒˆ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ํŒŒ์ผ์— ์ œ๋Œ€๋กœ ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ์กด ๊ฐ€์ ธ ์˜ค๊ธฐ _ ์œ„์— _ ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค.
  • .ts ๋ฐ .svelte ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์œ„์น˜์— ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค.
  • ํŽธ์ง‘๊ธฐ์˜ quoteStyle ๊ธฐ๋ณธ ์„ค์ •์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

    • ์˜ˆ๋ฅผ ๋“ค์–ด VSCode์—์„œ typescript.preferences.quoteStyle: single ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์ ธ ์˜ค๊ธฐ์— ์—ฌ์ „ํžˆ ํฐ ๋”ฐ์˜ดํ‘œ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ๋“ค์—ฌ ์“ฐ๊ธฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์žฌ์ƒ์‚ฐํ•˜๋ ค๋ฉด
sveltejs/template ์—์„œ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋นˆ Test.svelte ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ App.svelte ๋กœ ์ž๋™ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. TypeScript ํ”„๋กœ์ ํŠธ์—์„œ .ts ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ค„ ๋ฐ”๊ฟˆ์—†์ด ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ ๋ฐ”๋กœ ๋’ค์— ์‚ฝ์ž…๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Example

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™
์ž๋™ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ผ๋ฐ˜ .ts ํŒŒ์ผ์—์„œ์™€ ๋˜‘๊ฐ™์ด ์ž‘๋™ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๋กœ ์ธํ•ด ์ผ๋ถ€ ๋“ค์—ฌ ์“ฐ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠนํžˆ ๊ธฐ์กด ์ˆ˜์ž…ํ’ˆ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋“ค์—ฌ ์“ฐ๊ธฐ๋กœ ์‚ฝ์ž…ํ•˜์‹ญ์‹œ์˜ค.
  • ๊ธฐ์กด ๊ฐ€์ ธ ์˜ค๊ธฐ ์•„๋ž˜์— ์‚ฝ์ž…ํ•˜์‹ญ์‹œ์˜ค.
  • ๋ชจ๋“  ํŒŒ์ผ ํ˜•์‹์— ๋Œ€ํ•ด ์ผ๊ด€๋˜๊ฒŒ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ํŽธ์ง‘์ž์˜ ๊ฒฌ์  ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๋‚ด ์ฝ”๋“œ๋Š” ์ˆ˜๋™ ์ž‘์—…์—†์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

<script lang="ts">
    import Test from './Test.svelte';
    import { testStore } from './test';

    export let name;
</script>

์‹œ์Šคํ…œ (๋‹ค์Œ ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค) :

  • ์šด์˜์ฒด์ œ : Windows 10
  • IDE : VSCode, 1.46.1
  • ํ”Œ๋Ÿฌ๊ทธ์ธ / ํŒจํ‚ค์ง€ : Svelte for VSCode, 101.1.1
Fixed bug

๋ชจ๋“  3 ๋Œ“๊ธ€

๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๋Š” ํ…œํ”Œ๋ฆฟ ๋‚ด์—์„œ ๊ฐ€์ ธ ์˜ค๋Š” ๋™์•ˆ ์ฝ”๋“œ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‚ ์”ฌํ•œ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด svelte2tsx ์—์„œ ์œ ํšจํ•œ tsx ํŒŒ์ผ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ ์ฝ˜ํ…์ธ  ๋งŒ ์‚ฌ์šฉํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์„œ๊ฐ€ ์œ ํšจํ•œ ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด svelte2tsx ๋Š” ๋ณ€ํ™˜ ๋œ tsx ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด TypeScript๊ฐ€ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ๋‹ค๋ฅธ ์ง€์ ์— ์‚ฝ์ž…ํ•˜๊ณ  ์ƒ์„ฑ ๋œ tsx ์—์„œ ์›๋ž˜ svelte ๋งคํ•‘ํ•˜๋ฉด ๋งจ ์œ„์— ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž˜ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ๊ธฐ๋ณธ ์„ค์ • (์ธ์šฉ๋ฌธ ์Šคํƒ€์ผ)์„ ๊ณ ์ˆ˜ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ "๊ฐ€์ ธ ์˜ค๊ธฐ ๊ตฌ์„ฑ"๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋” ์˜ˆ์œ ์„œ์‹์ด ๋“ค์—ฌ ์“ฐ๊ธฐ ๋ฐ ๋”ฐ์˜ดํ‘œ ์Šคํƒ€์ผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช… ๋ฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด @dummdidumm ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๐Ÿ˜„

๊ธฐ์กด ์ˆ˜์ž…ํ’ˆ ์•„๋ž˜์— ์‚ฝ์ž… ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ์ง€๊ธˆ ๋‹น์žฅ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด ํฌ๊ฒŒ ๊ฐœ์„  ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ™•์žฅ์€ (๋น„๋””์˜ค ํŠœํ† ๋ฆฌ์–ผ์—์„œ์™€ ๊ฐ™์ด) ์ข€ ๋”๋ณด๊ธฐ ์ข‹์„ ๊ฒƒ์ด๊ณ , ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ ์ผ๊ด€๋œ ๋Š๋‚Œ์ด๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค (์ตœ์‹  ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์€ ๋“œ๋ฌธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค).

Vetur๋กœ ์„ธ ๊ฐ€์ง€ ๊ฐ€์ ธ ์˜ค๊ธฐ ( test , test2 , test3 ์ˆœ์„œ๋Œ€๋กœ)๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— ์‚ฝ์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ต ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Vetur :

<script lang="ts">
  import Vue from 'vue';
import { testStore1 } from './test';
import { testStore2 } from './test2';
import { testStore3 } from './test3';

  export default Vue.extend({ /*...*/ });
</script>

VSCode ์šฉ Svelte :

<script lang="ts">import { testStore3 } from "./test3";
import { testStore2 } from "./test2";

import { testStore } from "./test";


    export let name: string;

</script>

js / ts ํ•˜๋‚˜์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ๋งต์€ ๋งˆ์ง€๋ง‰ ๊ฐ€์ ธ ์˜ค๊ธฐ์˜ ๋‹ค์Œ ์ค„์„ ์›๋ž˜ ์œ„์น˜์— ๋งคํ•‘ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰