Nuxt를 개발하면서 우리는 새로운 서버 엔진인 Nitro를 만들었습니다.
Nitro에는 다음과 같은 많은 기능이 포함되어 있습니다:
서버 API 엔드포인트와 미들웨어는 내부적으로 h3를 사용하는 Nitro에 의해 추가됩니다.
주요 기능은 다음과 같습니다:
res.end() 및 next()도 지원)자세한 내용은 h3 문서를 확인하세요.
Nitro는 전역으로 사용 가능한 $fetch 헬퍼를 통해 라우트를 '직접' 호출할 수 있게 해줍니다. 브라우저에서 실행될 경우 서버로 API 호출을 수행하지만, 서버에서 실행될 경우 관련 함수를 직접 호출하여 추가 API 호출을 절약합니다.
$fetch API는 ofetch를 사용하며, 주요 기능은 다음과 같습니다:
Content-Type 헤더를 설정$fetch 기능에 대한 더 많은 정보는 ofetch를 참고하세요.
API 라우트(또는 미들웨어)를 사용할 때, 응답을 보내기 위해 res.end()를 사용하는 대신 값을 반환하기만 하면 Nitro가 해당 라우트에 대한 타입 정의를 생성합니다.
이 타입들은 $fetch() 또는 useFetch()를 사용할 때 접근할 수 있습니다.
Nitro는 node_modules에 의존하지 않는 독립 실행형 서버 dist를 생성합니다.
Nuxt 2의 서버는 독립 실행형이 아니며, nuxt-start 또는 nuxt 배포판으로 nuxt start를 실행하거나 커스텀 프로그래매틱 사용을 통해 Nuxt 코어의 일부가 관여해야 합니다. 이는 취약하고 쉽게 깨질 수 있으며, 서버리스 및 서비스 워커 환경에는 적합하지 않습니다.
Nuxt는 nuxt build를 실행할 때 .output 디렉터리에 이 dist를 생성합니다.
출력물에는 어떤 환경에서든(실험적인 브라우저 서비스 워커 포함!) Nuxt 서버를 실행하고 정적 파일을 서빙하기 위한 런타임 코드가 포함되어 있어, JAMstack을 위한 진정한 하이브리드 프레임워크가 됩니다. 추가로, Nuxt는 멀티 소스 드라이버와 로컬 에셋을 지원하는 네이티브 스토리지 레이어를 구현합니다.