본문 바로가기
자바스크립트/Svelte

[한글] SvelteKit - Project Structure

by zenna 2022. 10. 27.
728x90
SvelteKit 공식 사이트의 튜토리얼을 번역한 내용입니다 :)
원본은 아래 링크를 참고해주세요
https://kit.svelte.dev/docs/project-structure

 

start

npm create svelte@latest my-app
cd my-app
npm install
npm run dev

 


Project Structure (프로젝트 구조)

my-project/
├ src/
│ ├ lib/
│ │ ├ server/
│ │ │ └ [서버전용 lib 파일]
│ │ └ [작성한 lib 파일] ex.image라는이름의 폴더 생성 후 이미지 요소를 저장할 수 있음
│ ├ params/
│ │ └ [작성한 파라미터 매칭]
│ ├ routes/
│ │ └ [앱의 구현, url과 일치하는 폴더 생성]
│ │  │ └ [+page.js]
│ │  │ └ [+page.svelte]
│ │  └ +page.svelte
: 최초 접속 시 노출되는 페이지
│ │  └ +layout.svelte : 페이지 설계도. 헤더, 바디, 푸터로 설계한 경우 여기 작성됨

│ ├ app.html
│ ├ error.html
│ └ hooks.js
 static/
│ └ [로고 등의 static 요소]
├ tests/
│ └ [테스트코드]
├ package.json
├ svelte.config.js
├ tsconfig.json
└ vite.config.js

src

src 프로젝트의 핵심

  • lib에는 $lib 별칭을 통해 가져오거나 svelte-package를 사용하여 배포용으로 패키지화할 수 있는 라이브러리 코드가 포함되어 있습니다.
    • server contains your server-only library code. It can be imported by using the [$lib/server](<https://kit.svelte.dev/docs/server-only-modules>) alias. SvelteKit will prevent you from importing these in client code.
    • server에는 서버 전용 라이브러리 코드가 포함되어 있습니다. $lib/server 별칭을 사용하여 가져올 수 있습니다. SvelteKit은 클라이언트 코드에서 이러한 항목을 가져오는 것을 방지합니다.
  • params는 앱에 필요한 모든 param matchers(파라미터 매칭)를 포함합니다.
  • route에는 애플리케이션의 경로(routes)가 포함됩니다.
  • app.html은 아래의 내용들을 포함하는 페이지 템플릿입니다.
    • %sveltekit.head% — 앱에 필요한 <link> 및 <script> 요소와 모든 svelte:head 콘텐츠
    • %sveltekit.body% — 렌더링된 페이지의 마크업입니다. 일반적으로 이것은 <body> 내부가 아니라 <div> 또는 다른 요소 내부에 존재합니다. 브라우저 확장으로 인한 버그를 방지합니다.(원문 : to prevent bugs caused by browser extensions injecting elements that are then destroyed by the hydration process)
    • %sveltekit.assets% — either [paths.assets](<https://kit.svelte.dev/docs/configuration#paths>), if specified, or a relative path to [paths.base](<https://kit.svelte.dev/docs/configuration#paths>)
    • %sveltekit.nonce% — 한번만 사용되는 CSP . 링크나 스크립트가 포함되어있음
  • error.html (선택사항) 에러가 발생했을 때 띄울 html 페이지. 아래 요소를 포함함
    • %sveltekit.status% — HTTP 상태
    • %sveltekit.error.message% — 에러메시지
  • hooks.js (선택사항) 앱의 후크를 포함 :  hooks
  • service-worker.js (선택사항) service worker를 포함함

TypeScript를 사용하고 싶으면 .js 대신 .ts 를 사용할 수 있음

static

robots.txt 또는 favicon.png와 같이 있는 그대로 제공되어야 하는 모든 정적 자산은 여기로 이동합니다.

tests

npm create svelte@latest을 실행중일 때, 테스트를 해보고 싶다면 이 폴더에 생성하여 해보면 됨

package.json

jsconfig.json나 package.json은 npm create svelte@latest 중에 typecheck를 추가한 경우 TypeScript를 구성합니다. SvelteKit은 특정 방식으로 설정되는 특정 구성에 의존하므로 자체 구성이 확장되는 .svelte-kit/tsconfig.json 파일을 생성합니다.

vite.config.js

SvelteKit 프로젝트는 실제로 다른 Vite 구성과 함께 [@sveltejs/kit/vite](<https://kit.svelte.dev/docs/modules#sveltejs-kit-vite>) 플러그인을 사용하는 Vite 프로젝트입니다.

Other files

  • .svelte-kit
728x90

댓글