지원 브라우저
Next.js는 최신 브라우저를 별도의 설정 없이 지원합니다.
- Chrome 64+
- Edge 79+
- Firefox 67+
- Opera 51+
- Safari 12+
Browserslist
특정 브라우저나 기능을 대상으로 하고 싶다면, Next.js는 package.json
파일에서 Browserslist (opens in a new tab) 구성을 지원합니다. Next.js는 기본적으로 다음 Browserslist 구성을 사용합니다:
package.json
{
"browserslist": [
"chrome 64",
"edge 79",
"firefox 67",
"opera 51",
"safari 12"
]
}
폴리필
Next.js는 널리 사용되는 폴리필 (opens in a new tab)을 삽입합니다. 여기에는 다음이 포함됩니다:
- fetch() (opens in a new tab) — 대체:
whatwg-fetch
및unfetch
. - URL (opens in a new tab) — 대체:
url
패키지 (Node.js API) (opens in a new tab). - Object.assign() (opens in a new tab) — 대체:
object-assign
,object.assign
, 및core-js/object/assign
.
종속성에 이러한 폴리필이 포함된 경우, 프로덕션 빌드에서 중복을 피하기 위해 자동으로 제거됩니다.
또한 번들 크기를 줄이기 위해 Next.js는 이러한 폴리필이 필요한 브라우저에서만 로드합니다. 전 세계 웹 트래픽의 대부분은 이러한 폴리필을 다운로드하지 않습니다.
사용자 정의 폴리필
자체 코드나 외부 npm 종속성이 대상 브라우저에서 지원되지 않는 기능(예: IE 11)을 요구하는 경우, 직접 폴리필을 추가해야 합니다.
이 경우, 필요한 특정 폴리필을 커스텀 <App>
이나 개별 컴포넌트에 최상위로 가져와야 합니다.
JavaScript 언어 기능
Next.js는 최신 JavaScript 기능을 기본적으로 사용할 수 있게 합니다. ES6 기능 (opens in a new tab) 외에도 Next.js는 다음을 지원합니다:
- Async/await (opens in a new tab) (ES2017)
- Object Rest/Spread Properties (opens in a new tab) (ES2018)
- Dynamic
import()
(opens in a new tab) (ES2020) - Optional Chaining (opens in a new tab) (ES2020)
- Nullish Coalescing (opens in a new tab) (ES2020)
- Class Fields (opens in a new tab) 및 Static Properties (opens in a new tab) (ES2022)
- 그 외 다수!
TypeScript 기능
Next.js는 기본적으로 TypeScript를 지원합니다. 여기에서 자세히 알아보세요.
Babel 구성 사용자 정의 (고급)
Babel 구성을 사용자 정의할 수 있습니다. 여기에서 자세히 알아보세요.