κΈ°λ₯ μμ²μ΄ λ¬Έμ μ κ΄λ ¨λμ΄ μμ΅λκΉ?
λ§μ νμ κ΅¬μ± μμκ° μλ 볡μ‘ν κ΅¬μ± μμκ° μμ΅λλ€. νμ κ΅¬μ± μμλ λΉκ³΅κ°μ΄λ©° ν¨κ» λͺ¨μ¬ νλμ ν° κ΅¬μ± μμλ₯Ό λ§λλλ€.
λ€μμ μμ λλ€.
form/
input.svelte
textarea.svelte
index.svelte
radio.svelte
checkbox.svelte
μνλ μ루μ μ€λͺ
form/index.svelte
λͺ
μμ μΌλ‘ μμ±νλ λμ form/
λ₯Ό form/index.svelte
λ‘ ν΄κ²°ν μ μκΈ°λ₯Ό λ°λλλ€.
μ΄ νλ¬κ·ΈμΈμ κΈ°λ³Έμ μΌλ‘ .svelte νμ₯μλ₯Ό κ°μ§ νμΌμ λν΄ node.js μ€νμΌ ν΄μλλ₯Ό λ°λΌμΌ νλ€κ³ μκ°ν©λλ€.
form/ => form/index.svelte
form/input => form/input.svelte (or form/input/index.svelte)
form/input.svelte => form/input.svelte
λλ μ΄κ²μ λ°λν©λλ€. κ·Έλ¬λ©΄ μ΄λ€ νμΌμ΄ Svelte νμΌμ΄κ³ μ΄λ€ νμΌμ΄ μΌλ° νμΌμΈμ§ λ μ΄μ ꡬλ³ν μ μκΈ° λλ¬Έμ
λλ€. index.js
μ index.svelte
κ° κ°μ ν΄λμ μμΌλ©΄ μ΄λ»κ² λ©λκΉ? 무μμ μμ
ν΄μΌν©λκΉ? μ΄κ²μ νκΈ°μ μΈ λ³νκ° λ κ²μ
λλ€. λν λ΄κ° μλ ν λ²λ€λ¬μμλ μ§μνμ§ μμ΅λλ€.
κ·νμ νΉμ κ²½μ°μλ λ€μ λ΄μ©κ³Ό ν¨κ» index.js
λ₯Ό μΆκ°νλ κ²μ΄ μ’μ΅λλ€.
export { default as Index } from './index.svelte';
// ... you can add your other Svelte files here as well
κ·Έλ° λ€μ λ€μκ³Ό κ°μ΄ κ°μ Έμ΅λλ€.
<script>
import { Index } from './form';
</script>
μλ΅ν΄ μ£Όμ μ κ°μ¬ν©λλ€. λλ μ΄ λ¬Έμ κ° λ§€μ° λ Όμμ μ¬μ§κ° μλ€κ³ μκ°νμ§ μμκΈ° λλ¬Έμ μ°λ¦¬κ° κ°μ νμ΄μ§μ μλμ§ λ€μ νμΈνκ³ μΆμ΅λλ€.
Javascript, Typescript, JSX λλ TSX νμΌμ ν΄κ²°νλ κ²κ³Ό λμΌν λ°©μμΌλ‘ Svelte νμΌμ ν΄κ²°νλ κΈ°λ₯μ μμ²ν©λλ€.
κ°μ λ°©μμΌλ‘ Typescript λλ React νλ‘μ νΈμ νμ₯μ μΆκ°ν νμκ° μμ΅λλ€.
import A from "./a.ts"
// you can just do
import A from "./a"
VSCode typescript ν΄μκΈ°λ Node.js ν΄μ κ·μΉμ λ°λ¦ λλ€. λ Έλμ ν΄μλ κ·μΉ μ€κ³μ λν΄ μ΄μΌκΈ°ν λ κ·νμ μμ μ λ§€μ° μ ν¨ν©λλ€. λ μ νμ μ΄λΌλ λ° λμν©λλ€.
νμ§λ§ κ·Έ λ°°κ° μΆννλ€λ©΄ .svelte
νμ₯μ΄ .ts
, .tsx
, .jsx
νμ₯κ³Ό λ€λ₯Έ μ μ 무μμ
λκΉ?
νμ₯μ 건λλ°λ κ²μ μμ¬μ μΌλ‘ Nodeμ ν΄κ²° λ©μ»€λμ¦μ νΉμ΄ν μ μ λλ€. λΉμ ν λ‘ μ μ°Έμ¬νλ Npmμ μμ΄μ Z. μ루ν°(Isaac Z. Schlueter)λ μ΄ν μ΄μ λν΄ μ κ°μ νλͺ νλ€. κ·Έλ¦¬κ³ κ·Έλ μμ μ κ²μλ¬Όμ λ¬λ¦° λκΈμμ μ΄ν΄ν μ μλ€λ λ°μμ 보μμ΅λλ€. μ΄κ²μ νμ€ν λ§€μ° λ Όλμ μ¬μ§κ° μλ μ£Όμ μ λλ€.
νμ€ ESM κ°μ Έμ€κΈ°μλ νμ₯μ 건λλ°λ μλ―Έκ° μμΌλ©° κΈ°λ³Έμ μΌλ‘ Svelte(λ° Rollup)κ° μΌμΉνλ λ°©ν₯μ λλ€.
μ¦, κ·Έκ²μ μμ ν μ¬μ©νλ λ²λ€λ¬μ κ΄μ¬μ¬μ
λλ€. λ΄ κΈ°μ΅μ΄ λ§λ€λ©΄ Webpack .svelte
νμ₯μλ κΈ°λ³Έμ μΌλ‘ μ ν μ¬νμ
λλ€. κ·Έλ¦¬κ³ Rollupμμλ node-resolve νλ¬κ·ΈμΈμ
μ¦, κ·Έκ²μ μμ ν μ¬μ©νλ λ²λ€λ¬μ κ΄μ¬μ¬μ λλ€. λ΄ κΈ°μ΅μ΄ λ§λ€λ©΄ Webpack
.svelte
νμ₯μλ κΈ°λ³Έμ μΌλ‘ μ ν μ¬νμ λλ€. κ·Έλ¦¬κ³ Rollupμμλ node-resolve νλ¬κ·ΈμΈμ
ν₯λ―Έλ‘κ²λ webpack νλ¬κ·ΈμΈμμ νμ₯μ΄ κΈ°λ³Έμ μΌλ‘ μ ν μ¬νμ΄λΌλ κ²μ λͺ°λμ΅λλ€.
μ΄κ²μ μ§μνλ€λ κ²μ λͺ¨λ ν΄μμ΄ μΈμ΄ μλ²μμ .svelte
μμ΄ μμ±λ Svelte κ°μ Έμ€κΈ°λ₯Ό μνλ κ²½μ° λΉλ ꡬμ±λ λ³κ²½ν΄μΌ ν μ μμ΅λλ€.
λλ λ€λ₯Έ μ¬λλ€μ΄ μ΄κ²μ λν΄ νκ°ν μ μλλ‘ λ€μ μ΄ κ²μ λλ€.
μ΄μ λν 리μΉμ μ¬μ μ μκ³ μΆλ€λ©΄ https://twitter.com/Rich_Harris/status/1002959357250801664 - κ·Έλ¦¬κ³ Node.jsμ μ μμ Ryan Dahlκ³Ό λμΌν λ΄μ©μ λλ€.
μ λ λμν©λλ€. λΉμ μ νμ₯μκ°μλ νμΌμ ν΄κ²°ν μ μμ΅λλ€ν΄μ, λΉμ μ΄ν΄μΌ μλ―Ένμ§ μλλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄μ λν 리μΉμ μ¬μ μ μκ³ μΆλ€λ©΄ https://twitter.com/Rich_Harris/status/1002959357250801664 - κ·Έλ¦¬κ³ Node.jsμ μ μμ Ryan Dahlκ³Ό λμΌν λ΄μ©μ λλ€.
μ λ λμν©λλ€. λΉμ μ νμ₯μκ°μλ νμΌμ ν΄κ²°ν μ μμ΅λλ€ν΄μ, λΉμ μ΄ν΄μΌ μλ―Ένμ§ μλλ€.