[Svelte] Deploy Sveltekit
[Svelte] Deploy Sveltekit
이번에 졸업 프로젝트 하면서 간단한 프론트가 필요해서, 예전에 써본 기억이 있던 Svelte 로 뚝딱 만들었다.
아주 짤막하게 만들면 되는 주제에 Sveltekit 이 재밌어 보여서 한 번 써봤다.
그냥저냥 재밌기만 한 줄 알았는데, 이게 웬걸..? 배포할 때 build 폴더가 나오질 않는 것이었다…
앞으로 자주 쓸 일은 없겠지만 혹여나 이번 같이 짤막하게 프론트를 만들 일이 생길 수도 있기에
배포하는 방법 정도는 적어두려고 한다.
Sveltekit 은 단순하게 npm run build
만 하면 build 폴더가 뿅 하고 생기지 않는다.. 어째서??
Before you can deploy your SvelteKit app, you need to adapt it for your deployment target.
SvelteKit 을 배포하려면, adapt
해야 한단다.. 이게 무슨 소리인가하니,
Adapters are small plugins that take the built app as input and generate output for deployment.
어댑터를 하나 달아주어야 하는데, 이 어댑터가 바로 deployment 를 위한 output 을 만들어 준다고 한다.
Cloudflare, netlify, … 등등 다양한 어탭터가 있는데, 나는 따로 서버에 직접 배포할 것이므로 Node 서버 adapter 를 선택했다.
막상 알고나면, 해야할 것은 별 거 없다.
npm i -D @sveltejs/adapter-node
커맨드를 통해서, adapter plugin 다운 받아 주시고, 프로젝트 루트 path 에 있는 svelte.config.js
에 들어간다.
text
import adapter from '@sveltejs/adapter-node';
export default {
kit: {
adapter: adapter()
}
};
이후 위의 코드 처럼, 다운 받은 plugin 으로 부터 adapter 를 import 하고, kit 에 달아준다.
그 뒤로는 더욱 별 거 없다.
npm run build
하고, npm ci --omit dev
하고, node build
하면 된다!
아래는 아주 간단하게 작성한 Dockerfile 이다.
shell
FROM node:16.14.0 AS build
ARG PORT=3000
WORKDIR /app
COPY . ./
RUN npm install
RUN npm i -D @sveltejs/adapter-node
RUN npm run build
RUN npm ci --omit dev
EXPOSE ${PORT}
CMD node build
Subscribe to hoeeeeeh
Get the latest posts delivered right to your inbox