From c9daf1fc8ca2e4f5085dc28981be59c3df151613 Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Wed, 21 Aug 2024 15:55:26 +0200 Subject: [PATCH] Stablize instrumentation.js (#68853) ### What - After adding a new API `onRequestError()` and a few fixes on `register()` for `instrumentation.js`, it's time to promote it as stable API. - Add warning `"experimental.instrumentationHook is no longer needed to be configured in Next.js"` when you configure a `instrumentationHook` option in next.config.js Related PRs #67539, #67671, #67703, #67848, #67859, #67856, #67805, #68616, #68672, #68764, #68845 #68976, #68983 Closes NDX-89 --- packages/next/src/build/index.ts | 9 +---- packages/next/src/server/config-schema.ts | 1 - packages/next/src/server/config-shared.ts | 6 ---- packages/next/src/server/config.ts | 7 ++++ .../src/server/dev/hot-reloader-turbopack.ts | 1 - .../next/src/server/dev/turbopack-utils.ts | 4 +-- .../lib/router-utils/setup-dev-bundler.ts | 5 +-- packages/next/src/server/next-server.ts | 5 +-- .../e2e/app-dir/next-after-app/next.config.js | 1 - .../instrumentation-hook-src.test.ts | 5 --- .../flying-shuttle/next.config.js | 1 - .../general/next.config.js | 6 +--- .../instrumentation-hook.test.ts | 36 +++++-------------- .../register-once/next.config.js | 6 +--- .../with-async-edge-page/next.config.js | 6 +--- .../with-async-node-page/next.config.js | 6 +--- .../with-edge-api/next.config.js | 6 +--- .../with-edge-page/next.config.js | 6 +--- .../with-esm-import/.gitignore | 1 + .../with-esm-import/instrumentation.js | 4 +-- .../with-esm-import/next.config.js | 6 +--- .../node_modules/my-lib/index.js | 3 ++ .../node_modules/my-lib/package.json | 4 +++ .../with-middleware/next.config.js | 6 +--- .../with-node-api/next.config.js | 6 +--- .../with-node-page/next.config.js | 6 +--- .../e2e/on-request-error/basic/next.config.js | 6 +--- .../dynamic-routes/next.config.js | 6 +--- test/e2e/on-request-error/isr/next.config.js | 6 +--- .../server-action-error/next.config.js | 6 +--- .../skip-next-internal-error/next.config.js | 6 +--- .../client-trace-metadata/next.config.js | 1 - .../instrumentation/next.config.js | 6 +--- .../instrumentation/opentelemetry.test.ts | 4 +-- test/e2e/rsc-layers-transform/next.config.js | 6 +--- .../test/index.test.js | 6 ++-- .../next.config.js | 6 +--- 37 files changed, 53 insertions(+), 159 deletions(-) create mode 100644 test/e2e/instrumentation-hook/with-esm-import/.gitignore create mode 100644 test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/index.js create mode 100644 test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/package.json diff --git a/packages/next/src/build/index.ts b/packages/next/src/build/index.ts index a0fa09190f7f4..65b2e3de7d875 100644 --- a/packages/next/src/build/index.ts +++ b/packages/next/src/build/index.ts @@ -862,15 +862,9 @@ export default async function build( ) const rootDir = path.join((pagesDir || appDir)!, '..') - const instrumentationHookEnabled = Boolean( - config.experimental.instrumentationHook - ) - const includes = [ middlewareDetectionRegExp, - ...(instrumentationHookEnabled - ? [instrumentationHookDetectionRegExp] - : []), + instrumentationHookDetectionRegExp, ] const rootPaths = Array.from(await getFilesInDir(rootDir)) @@ -1351,7 +1345,6 @@ export default async function build( currentEntrypoints, currentEntryIssues, manifestLoader, - nextConfig: config, devRewrites: undefined, productionRewrites: customRoutes.rewrites, logErrors: false, diff --git a/packages/next/src/server/config-schema.ts b/packages/next/src/server/config-schema.ts index 69ba54f9e9b44..3d363eee8ea10 100644 --- a/packages/next/src/server/config-schema.ts +++ b/packages/next/src/server/config-schema.ts @@ -394,7 +394,6 @@ export const configSchema: zod.ZodType = z.lazy(() => .optional(), optimizePackageImports: z.array(z.string()).optional(), optimizeServerReact: z.boolean().optional(), - instrumentationHook: z.boolean().optional(), clientTraceMetadata: z.array(z.string()).optional(), turbotrace: z .object({ diff --git a/packages/next/src/server/config-shared.ts b/packages/next/src/server/config-shared.ts index e6c845bc7b770..f4c5174d405a1 100644 --- a/packages/next/src/server/config-shared.ts +++ b/packages/next/src/server/config-shared.ts @@ -407,11 +407,6 @@ export interface ExperimentalConfig { */ webpackMemoryOptimizations?: boolean - /** - * - */ - instrumentationHook?: boolean - /** * The array of the meta tags to the client injected by tracing propagation data. */ @@ -1036,7 +1031,6 @@ export const defaultConfig: NextConfig = { turbotrace: undefined, typedRoutes: false, typedEnv: false, - instrumentationHook: false, clientTraceMetadata: undefined, parallelServerCompiles: false, parallelServerBuildTraces: false, diff --git a/packages/next/src/server/config.ts b/packages/next/src/server/config.ts index c1eedc43bce69..4b3cd3d0f1810 100644 --- a/packages/next/src/server/config.ts +++ b/packages/next/src/server/config.ts @@ -471,6 +471,13 @@ function assignDefaults( silent ) + warnOptionHasBeenDeprecated( + result, + 'experimental.instrumentationHook', + '`experimental.instrumentationHook` is no longer needed to be configured in Next.js', + silent + ) + warnOptionHasBeenMovedOutOfExperimental( result, 'bundlePagesExternals', diff --git a/packages/next/src/server/dev/hot-reloader-turbopack.ts b/packages/next/src/server/dev/hot-reloader-turbopack.ts index c7b880f93271a..72ec6c357401b 100644 --- a/packages/next/src/server/dev/hot-reloader-turbopack.ts +++ b/packages/next/src/server/dev/hot-reloader-turbopack.ts @@ -478,7 +478,6 @@ export async function createHotReloaderTurbopack( currentEntryIssues, manifestLoader, - nextConfig: opts.nextConfig, devRewrites: opts.fsChecker.rewrites, productionRewrites: undefined, logErrors: true, diff --git a/packages/next/src/server/dev/turbopack-utils.ts b/packages/next/src/server/dev/turbopack-utils.ts index ae811f25c8c61..ab170b4ca2e1c 100644 --- a/packages/next/src/server/dev/turbopack-utils.ts +++ b/packages/next/src/server/dev/turbopack-utils.ts @@ -709,7 +709,6 @@ export async function handleEntrypoints({ currentEntryIssues, manifestLoader, - nextConfig, devRewrites, productionRewrites, logErrors, @@ -721,7 +720,6 @@ export async function handleEntrypoints({ currentEntryIssues: EntryIssuesMap manifestLoader: TurbopackManifestLoader - nextConfig: NextConfigComplete devRewrites: SetupOpts['fsChecker']['rewrites'] | undefined productionRewrites: CustomRoutes['rewrites'] | undefined logErrors: boolean @@ -793,7 +791,7 @@ export async function handleEntrypoints({ currentEntrypoints.global.middleware = middleware - if (nextConfig.experimental.instrumentationHook && instrumentation) { + if (instrumentation) { const processInstrumentation = async ( name: string, prop: 'nodeJs' | 'edge' diff --git a/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts b/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts index 465de90fe8184..6112f96e2fbd7 100644 --- a/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts +++ b/packages/next/src/server/lib/router-utils/setup-dev-bundler.ts @@ -396,10 +396,7 @@ async function startWatcher(opts: SetupOpts) { ] continue } - if ( - isInstrumentationHookFile(rootFile) && - nextConfig.experimental.instrumentationHook - ) { + if (isInstrumentationHookFile(rootFile)) { serverFields.actualInstrumentationHookFile = rootFile await propagateServerField( opts, diff --git a/packages/next/src/server/next-server.ts b/packages/next/src/server/next-server.ts index 4f72b162868f0..3c9d3f2c3b9bb 100644 --- a/packages/next/src/server/next-server.ts +++ b/packages/next/src/server/next-server.ts @@ -297,10 +297,7 @@ export default class NextNodeServer extends BaseServer< } protected async loadInstrumentationModule() { - if ( - !this.serverOptions.dev && - !!this.nextConfig.experimental.instrumentationHook - ) { + if (!this.serverOptions.dev) { try { this.instrumentation = await dynamicRequire( resolve( diff --git a/test/e2e/app-dir/next-after-app/next.config.js b/test/e2e/app-dir/next-after-app/next.config.js index cbcbd1115ff48..2c62db0c357fe 100644 --- a/test/e2e/app-dir/next-after-app/next.config.js +++ b/test/e2e/app-dir/next-after-app/next.config.js @@ -3,6 +3,5 @@ module.exports = { experimental: { after: true, testProxy: true, - instrumentationHook: true, }, } diff --git a/test/e2e/instrumentation-hook-src/instrumentation-hook-src.test.ts b/test/e2e/instrumentation-hook-src/instrumentation-hook-src.test.ts index 502179b1d8167..32bf52e011079 100644 --- a/test/e2e/instrumentation-hook-src/instrumentation-hook-src.test.ts +++ b/test/e2e/instrumentation-hook-src/instrumentation-hook-src.test.ts @@ -4,11 +4,6 @@ describe('instrumentation-hook-rsc', () => { describe('instrumentation', () => { const { next, isNextDev, skipped } = nextTestSetup({ files: __dirname, - nextConfig: { - experimental: { - instrumentationHook: true, - }, - }, skipDeployment: true, }) diff --git a/test/e2e/instrumentation-hook/flying-shuttle/next.config.js b/test/e2e/instrumentation-hook/flying-shuttle/next.config.js index 182b9640127df..462e6eb186e3a 100644 --- a/test/e2e/instrumentation-hook/flying-shuttle/next.config.js +++ b/test/e2e/instrumentation-hook/flying-shuttle/next.config.js @@ -6,6 +6,5 @@ module.exports = { flyingShuttle: { mode: 'full', }, - instrumentationHook: true, }, } diff --git a/test/e2e/instrumentation-hook/general/next.config.js b/test/e2e/instrumentation-hook/general/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/general/next.config.js +++ b/test/e2e/instrumentation-hook/general/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/instrumentation-hook.test.ts b/test/e2e/instrumentation-hook/instrumentation-hook.test.ts index 7e685a511ec8b..f2c47446f1ada 100644 --- a/test/e2e/instrumentation-hook/instrumentation-hook.test.ts +++ b/test/e2e/instrumentation-hook/instrumentation-hook.test.ts @@ -17,33 +17,15 @@ const describeCase = ( }) } describe('Instrumentation Hook', () => { - // TODO: investigate the failure with esm import - // createNextDescribe( - // 'with-esm-import', - // { - // files: path.join(__dirname, 'with-esm-import'), - // nextConfig: { - // experimental: { - // instrumentationHook: true, - // }, - // }, - // dependencies: { - // // This test is mostly for compatibility with this package - // '@vercel/otel': 'latest', - // }, - // skipDeployment: true, - // }, - // ({ next }) => { - // eslint-disable-next-line jest/no-commented-out-tests - // it('with-esm-import should run the instrumentation hook', async () => { - // await next.render('/') - // await check( - // () => next.cliOutput, - // /register in instrumentation\.js is running/ - // ) - // }) - // } - // ) + describeCase('with-esm-import', ({ next }) => { + it('with-esm-import should run the instrumentation hook', async () => { + await next.render('/') + await check( + () => next.cliOutput, + /register in instrumentation\.js is running/ + ) + }) + }) describeCase('with-middleware', ({ next }) => { it('with-middleware should run the instrumentation hook', async () => { diff --git a/test/e2e/instrumentation-hook/register-once/next.config.js b/test/e2e/instrumentation-hook/register-once/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/register-once/next.config.js +++ b/test/e2e/instrumentation-hook/register-once/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-async-edge-page/next.config.js b/test/e2e/instrumentation-hook/with-async-edge-page/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-async-edge-page/next.config.js +++ b/test/e2e/instrumentation-hook/with-async-edge-page/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-async-node-page/next.config.js b/test/e2e/instrumentation-hook/with-async-node-page/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-async-node-page/next.config.js +++ b/test/e2e/instrumentation-hook/with-async-node-page/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-edge-api/next.config.js b/test/e2e/instrumentation-hook/with-edge-api/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-edge-api/next.config.js +++ b/test/e2e/instrumentation-hook/with-edge-api/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-edge-page/next.config.js b/test/e2e/instrumentation-hook/with-edge-page/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-edge-page/next.config.js +++ b/test/e2e/instrumentation-hook/with-edge-page/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-esm-import/.gitignore b/test/e2e/instrumentation-hook/with-esm-import/.gitignore new file mode 100644 index 0000000000000..cf4bab9ddde9f --- /dev/null +++ b/test/e2e/instrumentation-hook/with-esm-import/.gitignore @@ -0,0 +1 @@ +!node_modules diff --git a/test/e2e/instrumentation-hook/with-esm-import/instrumentation.js b/test/e2e/instrumentation-hook/with-esm-import/instrumentation.js index da3b9005e58f8..f0f0c361c8095 100644 --- a/test/e2e/instrumentation-hook/with-esm-import/instrumentation.js +++ b/test/e2e/instrumentation-hook/with-esm-import/instrumentation.js @@ -1,7 +1,7 @@ -import * as otel from '@vercel/otel' +import * as mod from 'my-lib' export function register() { console.log('register in instrumentation.js is running') // make sure that this is not tree-shaken - if (process.env.DOESNT_EXIST_1234) otel() + if (process.env.DOESNT_EXIST_1234) mod.c() } diff --git a/test/e2e/instrumentation-hook/with-esm-import/next.config.js b/test/e2e/instrumentation-hook/with-esm-import/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-esm-import/next.config.js +++ b/test/e2e/instrumentation-hook/with-esm-import/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/index.js b/test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/index.js new file mode 100644 index 0000000000000..1227307376925 --- /dev/null +++ b/test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/index.js @@ -0,0 +1,3 @@ +export const a = 1 +export const b = 2 +export const c = () => 3 diff --git a/test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/package.json b/test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/package.json new file mode 100644 index 0000000000000..cc77826c457c8 --- /dev/null +++ b/test/e2e/instrumentation-hook/with-esm-import/node_modules/my-lib/package.json @@ -0,0 +1,4 @@ +{ + "type": "module", + "exports": "./index.js" +} diff --git a/test/e2e/instrumentation-hook/with-middleware/next.config.js b/test/e2e/instrumentation-hook/with-middleware/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-middleware/next.config.js +++ b/test/e2e/instrumentation-hook/with-middleware/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-node-api/next.config.js b/test/e2e/instrumentation-hook/with-node-api/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-node-api/next.config.js +++ b/test/e2e/instrumentation-hook/with-node-api/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/instrumentation-hook/with-node-page/next.config.js b/test/e2e/instrumentation-hook/with-node-page/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/instrumentation-hook/with-node-page/next.config.js +++ b/test/e2e/instrumentation-hook/with-node-page/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/on-request-error/basic/next.config.js b/test/e2e/on-request-error/basic/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/on-request-error/basic/next.config.js +++ b/test/e2e/on-request-error/basic/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/on-request-error/dynamic-routes/next.config.js b/test/e2e/on-request-error/dynamic-routes/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/on-request-error/dynamic-routes/next.config.js +++ b/test/e2e/on-request-error/dynamic-routes/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/on-request-error/isr/next.config.js b/test/e2e/on-request-error/isr/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/on-request-error/isr/next.config.js +++ b/test/e2e/on-request-error/isr/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/on-request-error/server-action-error/next.config.js b/test/e2e/on-request-error/server-action-error/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/on-request-error/server-action-error/next.config.js +++ b/test/e2e/on-request-error/server-action-error/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/on-request-error/skip-next-internal-error/next.config.js b/test/e2e/on-request-error/skip-next-internal-error/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/on-request-error/skip-next-internal-error/next.config.js +++ b/test/e2e/on-request-error/skip-next-internal-error/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/opentelemetry/client-trace-metadata/next.config.js b/test/e2e/opentelemetry/client-trace-metadata/next.config.js index 529a5ed29d0cf..64fefc50a5c8d 100644 --- a/test/e2e/opentelemetry/client-trace-metadata/next.config.js +++ b/test/e2e/opentelemetry/client-trace-metadata/next.config.js @@ -1,6 +1,5 @@ module.exports = { experimental: { - instrumentationHook: true, clientTraceMetadata: [ 'my-parent-span-id', 'my-test-key-1', diff --git a/test/e2e/opentelemetry/instrumentation/next.config.js b/test/e2e/opentelemetry/instrumentation/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/opentelemetry/instrumentation/next.config.js +++ b/test/e2e/opentelemetry/instrumentation/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts b/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts index c3ab39d5d5cba..510dd8b21ea76 100644 --- a/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts +++ b/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts @@ -61,7 +61,7 @@ describe('opentelemetry', () => { }, }, ]) { - // turbopack does not support experimental.instrumentationHook + // turbopack does not support instrumentation.js ;(process.env.TURBOPACK || process.env.__NEXT_EXPERIMENTAL_PPR ? describe.skip : describe)(env.name, () => { @@ -836,7 +836,7 @@ describe('opentelemetry with disabled fetch tracing', () => { await collector.shutdown() }) - // turbopack does not support experimental.instrumentationHook + // turbopack does not support instrumentation.js ;(process.env.TURBOPACK || process.env.__NEXT_EXPERIMENTAL_PPR ? describe.skip : describe)('root context', () => { diff --git a/test/e2e/rsc-layers-transform/next.config.js b/test/e2e/rsc-layers-transform/next.config.js index c4cf84a76553b..4ba52ba2c8df6 100644 --- a/test/e2e/rsc-layers-transform/next.config.js +++ b/test/e2e/rsc-layers-transform/next.config.js @@ -1,5 +1 @@ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {} diff --git a/test/integration/config-experimental-warning/test/index.test.js b/test/integration/config-experimental-warning/test/index.test.js index 5cc95346eb601..ce3218cc2a41d 100644 --- a/test/integration/config-experimental-warning/test/index.test.js +++ b/test/integration/config-experimental-warning/test/index.test.js @@ -139,7 +139,7 @@ describe('Config Experimental Warning', () => { experimental: { workerThreads: true, scrollRestoration: true, - instrumentationHook: true, + parallelServerCompiles: true, cpus: 2, } } @@ -162,7 +162,7 @@ describe('Config Experimental Warning', () => { experimental: { workerThreads: true, scrollRestoration: true, - instrumentationHook: true, + parallelServerCompiles: true, cpus: 2, } } @@ -172,7 +172,7 @@ describe('Config Experimental Warning', () => { expect(stdout).toMatch(' · cpus') expect(stdout).toMatch(' · workerThreads') expect(stdout).toMatch(' · scrollRestoration') - expect(stdout).toMatch(' · instrumentationHook') + expect(stdout).toMatch(' · parallelServerCompiles') }) it('should show unrecognized experimental features in warning but not in start log experiments section', async () => { diff --git a/test/production/instrumentation/required-files-instrumentation-entry/next.config.js b/test/production/instrumentation/required-files-instrumentation-entry/next.config.js index fd31d60567230..5a877d2dbfaba 100644 --- a/test/production/instrumentation/required-files-instrumentation-entry/next.config.js +++ b/test/production/instrumentation/required-files-instrumentation-entry/next.config.js @@ -1,6 +1,2 @@ /** @type {import('next').NextConfig} */ -module.exports = { - experimental: { - instrumentationHook: true, - }, -} +module.exports = {}