예제: Static Export
next export
는 Next.js
애플리케이션을 정적 HTML
로 내보내서 Node.js
서버 없이 렌더링할 수 있게 합니다. 다음과 같은 지원되지 않는 기능이 필요하지 않은 경우에만 next export
를 사용하는 것이 좋습니다.
오직 일부 페이지만 정적 HTML
로 미리 렌더링하려는 하이브리드 사이트를 구축하려는 경우에는 Next.js
가 자동으로 수행하는 Automatic Static Optimization
과 Incremental Static Regeneration
(https://nextjs.org/docs/basic-features/data-fetching/incremental-static-regeneration)에 대해 자세히 알아보세요.
next export
다음과 같이 output: "export"
를 포함하는 next.config.js
파일을 업데이트합니다.
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
output: 'export',
};
module.exports = nextConfig;
다음과 같이 package.json
파일의 스크립트를 업데이트하여 next export
를 포함합니다.
"scripts": {
"build": "next build && next export"
}
npm run build
를 실행하면 out
디렉터리가 생성됩니다.
next export
는 앱의 HTML
버전을 빌드합니다. next build
중에 getStaticProps
와 getStaticPaths
는 페이지 디렉토리의 각 페이지(동적 경로의 경우 더 많음)에 대해 HTML
파일을 생성합니다. 그런 다음 next export
는 이미 내보낸 파일을 올바른 디렉토리로 복사합니다. getInitialProps
는 next build
대신 next export
중에 HTML
파일을 생성합니다.
더 고급진 시나리오에서는 next.config.js
파일의 exportPathMap
이라는 매개변수를 정의하여 생성될 페이지를 구성할 수 있습니다.
경고:
getStaticPaths
를 사용하는 페이지의 경우exportPathMap
을 사용하여 경로를 정의하면 무시되고 덮어씌워집니다. 함께 사용하지 않는 것을 권장합니다.
정적 사이트를 구축하는 데 필요한 대부분의 Next.js 핵심 기능이 지원됩니다.
next/link
로 prefetchingJavaScript
사전로드CSS Modules
, styled-jsx
등)getStaticProps
getStaticPaths
node.js
서버를 필요로하거나 빌드 프로세스 중에 계산할 수 없는 동적 로직이 필요한 기능들은 지원되지 않습니다:
fallback
속성을 사용하는 getStaticPaths
fallback
속성을 'blocking'
으로 사용하는 getStaticPaths
getServerSideProps
getInitialProps
getInitialProps
를 사용하면 getStaticProps
대신 사용할 수 있지만 몇 가지 주의 사항이 있습니다:
getInitialProps
는 동적 경로가 없는 모든 페이지에서 getStaticProps
또는 getStaticPaths와
함께 사용할 수 없습니다. 동적 경로가 있는 경우 getStaticPaths
대신 next.config.js
파일의 exportPathMap
매개 변수를 구성하여 익스포터가 어떤 HTML
파일을 출력해야 하는지 알려주어야 합니다.getInitialProps가
내보내기 중에 호출될 때, 컨텍스트 매개 변수의 req
및 res
필드는 서버가 실행되지 않기 때문에 빈 개체입니다.getInitialProps
는 클라이언트 사이드 내비게이션마다 호출됩니다. 빌드 시간에만 데이터를 가져오려면 getStaticProps
로 전환하십시오.getInitialProps
는 API에서 가져와야 하며 getStaticProps
와 달리 Node.js
특정 라이브러리나 파일 시스템을 사용할 수 없습니다.가능한 한 getStaticProps로 이전하는 것이 좋습니다.