# Base Stage
FROM node:20-alpine AS base
WORKDIR /app
COPY package*.json ./

# Dependencies Stage
FROM base AS deps
RUN npm install --production

# Development Stage
FROM base AS dev
ENV NODE_ENV=development
RUN npm install
COPY . .
CMD ["npm", "run", "dev"]

# Production Stage
FROM deps AS prod
ENV NODE_ENV=production
COPY . .
CMD ["npm", "start"]