Vigia

Оновлення next з 14.x до 15.x

Порівняння публічного API next 14.2.35 і 15.5.27, обчислене автоматично за їхніми типами TypeScript. Змінена сигнатура — можлива несумісна зміна, а не гарантія.

Підсумок

Видалені шляхи імпорту0
Видалені експорти4
Змінені сигнатури10
Видалені члени класів або інтерфейсів6
Змінені члени класів або інтерфейсів10
Нові застарівання5
Зміни вимог (engines, peer-залежності)5
Нові експорти25

Видалені експорти

importexportkindБуло
next/constantsGOOGLE_FONT_PROVIDERvariable"https://fonts.googleapis.com/"
next/constantsDEV_MIDDLEWARE_MANIFESTvariable"_devMiddlewareManifest.json"
next/constantsOPTIMIZED_FONT_PROVIDERSvariable{ url: string; preconnect: string; }[]
next/constantsAUTOMATIC_FONT_OPTIMIZATION_MANIFESTvariable"font-manifest.json"

Змінені сигнатури

exportБулоСтало
next · default(options: NextServerOptions): NextServer(options: Omit<Options | Options, "conf"> & Partial<Pick<Options | Options, "conf">> & { turbo?: boolean | undefined; turbopack?: boolean | undefined; }): NextWrapperServer
next · PageConfig{ amp?: boolean | "hybrid" | undefined; api?: { responseLimit?: ResponseLimit | undefined; bodyParser?: false | { sizeLimit?: SizeLimit | undefined; } | undefined; externalResolver?: true | undefined; } | undefined; env?: string[] | undefined; maxDuration?: number | undefined; runtime?: ServerRuntime; unstable_runtimeJS?: false | undefined; unstable_JsPreload?: false | undefined; unstable_includeFiles?: string[] | undefined; unstable_excludeFiles?: string[] | undefined; }{ amp?: boolean | "hybrid" | undefined; api?: { responseLimit?: ResponseLimit | undefined; bodyParser?: false | { sizeLimit?: SizeLimit | undefined; } | undefined; externalResolver?: true | undefined; } | undefined; env?: string[] | undefined; maxDuration?: number | undefined; runtime?: ServerRuntime; unstable_runtimeJS?: false | undefined; unstable_JsPreload?: false | undefined; }
next · GetStaticPathsResult{ paths: (string | { params: Params; locale?: string | undefined; })[]; fallback: boolean | "blocking"; }{ paths: (string | { params: Params; locale?: string | undefined; })[]; fallback: GetStaticPathsFallback; }
next/link · LinkProps{ href: any; as?: any; replace?: boolean | undefined; scroll?: boolean | undefined; shallow?: boolean | undefined; passHref?: boolean | undefined; prefetch?: boolean | null | undefined; locale?: string | false | undefined; legacyBehavior?: boolean | undefined; onMouseEnter?: any; onTouchStart?: any; onClick?: any; }interface
next/error · ErrorProps{ statusCode: number; title?: string | undefined; withDarkMode?: boolean | undefined; }{ statusCode: number; hostname?: string | undefined; title?: string | undefined; withDarkMode?: boolean | undefined; }
next/dynamic · DynamicOptionsLoadableGeneratedOptions & { loading?: ((loadingProps: DynamicOptionsLoadingProps) => any) | undefined; loader?: LoaderMap | Loader<P> | undefined; loadableGenerated?: LoadableGeneratedOptions | undefined; ssr?: boolean | undefined; suspense?: boolean | undefined; }LoadableGeneratedOptions & { loading?: ((loadingProps: DynamicOptionsLoadingProps) => React.ReactNode) | undefined; loader?: LoaderMap | Loader<P> | undefined; loadableGenerated?: LoadableGeneratedOptions | undefined; ssr?: boolean | undefined; }
next/dynamic · LoadableOptionsLoadableGeneratedOptions & { loading?: ((loadingProps: DynamicOptionsLoadingProps) => any) | undefined; loader?: LoaderMap | Loader<P> | undefined; loadableGenerated?: LoadableGeneratedOptions | undefined; ssr?: boolean | undefined; suspense?: boolean | undefined; }LoadableGeneratedOptions & { loading?: ((loadingProps: DynamicOptionsLoadingProps) => React.ReactNode) | undefined; loader?: LoaderMap | Loader<P> | undefined; loadableGenerated?: LoadableGeneratedOptions | undefined; ssr?: boolean | undefined; }
next/headers · cookies(): ReadonlyRequestCookies(): Promise<ReadonlyRequestCookies>
next/headers · headers(): ReadonlyHeaders(): Promise<ReadonlyHeaders>
next/headers · draftMode(): DraftMode(): Promise<DraftMode>

Видалені члени класів або інтерфейсів

memberimportБуло
NextConfig.swcMinifynextboolean | undefined
NextConfig.analyticsIdnextstring | undefined
NextConfig.optimizeFontsnextboolean | undefined
NextConfig.outputFileTracingnextboolean | undefined
Router._getFlightDatanext/router(dataHref: string): Promise<{ data: string; }>
Head.makeStylesheetInertnext/document(node: ReactNode[]): ReactNode[]

Змінені члени класів або інтерфейсів

memberБулоСтало
NextConfig.logging{ fetches?: { fullUrl?: boolean | undefined; } | undefined; } | undefinedfalse | LoggingConfig | undefined
NextConfig.rewrites(() => Promise<Rewrite[] | { beforeFiles: Rewrite[]; afterFiles: Rewrite[]; fallback: Rewrite[]; }>) | undefined(() => Promise<Rewrite[] | { beforeFiles?: Rewrite[] | undefined; afterFiles?: Rewrite[] | undefined; fallback?: Rewrite[] | undefined; }>) | undefined
NextConfig.sassOptions{ [key: string]: any; } | undefined{ [key: string]: any; implementation?: string | undefined; } | undefined
NextConfig.devIndicators{ buildActivity?: boolean | undefined; buildActivityPosition?: "bottom-right" | "bottom-left" | "top-right" | "top-left" | undefined; } | undefinedfalse | { appIsrStatus?: boolean | undefined; buildActivity?: boolean | undefined; buildActivityPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | undefined; position?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | undefined; } | undefined
NextApiRequest.previewDataanyPreviewData
NextPageContext.localesstring[] | undefinedreadonly string[] | undefined
default.static getInitialProps({ res, err, }: NextPageContext): ErrorProps | Promise<ErrorProps>({ req, res, err, }: NextPageContext): ErrorProps | Promise<ErrorProps>
default.static origGetInitialProps({ res, err, }: NextPageContext): ErrorProps | Promise<ErrorProps>({ req, res, err, }: NextPageContext): ErrorProps | Promise<ErrorProps>
Router.localesstring[] | undefinedreadonly string[] | undefined
Router.domainLocalesDomainLocale[] | undefinedreadonly DomainLocale[] | undefined

Нові застарівання

export@deprecated
next · NextConfig.ampbuilt-in amp support will be removed in Next 16
next · NextConfig.publicRuntimeConfigRuntime config is deprecated and will be removed in Next.js 16.
next · NextConfig.serverRuntimeConfigRuntime config is deprecated and will be removed in Next.js 16.
next/config · defaultRuntime config is deprecated and will be removed in Next.js 16.
next/config · setConfigRuntime config is deprecated and will be removed in Next.js 16.

Зміни вимог (engines, peer-залежності)

БулоСтало
engines.node>=18.17.0^18.18.0 || ^19.8.0 || >= 20.0.0
peerDependencies.react^18.2.0^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
peerDependencies.react-dom^18.2.0^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
peerDependencies.@playwright/test^1.41.2^1.51.1
peerDependencies.babel-plugin-react-compiler—*
Нові експорти (25)
importexportkind
nextNextAdapterinterface
nextInstrumentationnamespace
next/linkuseLinkStatusvariable
next/cacheunstable_cacheTagvariable
next/cacheunstable_cacheLifefunction
next/cacheunstable_expireTagvariable
next/cacheunstable_expirePathvariable
next/serveraftervariable
next/serverconnectionvariable
next/serverunstable_rootParamsvariable
next/serverUnsafeUnwrappedParamsvariable
next/serverUnsafeUnwrappedSearchParamsvariable
next/headersUnsafeUnwrappedCookiestype
next/headersUnsafeUnwrappedHeaderstype
next/headersUnsafeUnwrappedDraftModetype
next/constantsWEBPACK_STATSvariable
next/constantsAdapterOutputTypeenum
next/constantsDYNAMIC_CSS_MANIFESTvariable
next/constantsDEV_CLIENT_MIDDLEWARE_MANIFESTvariable
next/constantsTURBOPACK_CLIENT_BUILD_MANIFESTvariable
next/constantsTURBOPACK_CLIENT_MIDDLEWARE_MANIFESTvariable
next/navigationforbiddenfunction
next/navigationunauthorizedfunction
next/navigationunstable_rethrowvariable
next/navigationunstable_isUnrecognizedActionErrorfunction

Поширені запитання

Які несумісні зміни під час оновлення next з 14 до 15?

Між next 14.2.35 і 15.5.27 Vigia знайшла видалених експортів: 4, змінених сигнатур: 10, видалених або змінених членів класів та інтерфейсів: 16.

Що застаріло в next 15?

У next 15.5.27 новими застарілими позначено експортів або членів: 5.

Для агентів

GET https://vigia.coredls.cloud/v1/packages/npm/next/upgrade?from=14.2.35&to=15.5.27