diff --git a/packages/next/lib/typescript/writeVscodeConfigurations.ts b/packages/next/lib/typescript/writeVscodeConfigurations.ts index d8272239d895..577b39fe4bb4 100644 --- a/packages/next/lib/typescript/writeVscodeConfigurations.ts +++ b/packages/next/lib/typescript/writeVscodeConfigurations.ts @@ -6,7 +6,8 @@ import * as CommentJson from 'next/dist/compiled/comment-json' // Write .vscode settings to enable Next.js typescript plugin. export async function writeVscodeConfigurations( - baseDir: string + baseDir: string, + tsPath: string ): Promise { try { const vscodeSettings = path.join(baseDir, '.vscode', 'settings.json') @@ -24,7 +25,7 @@ export async function writeVscodeConfigurations( } } - const libPath = './node_modules/typescript/lib' + const libPath = path.relative(baseDir, path.dirname(tsPath)) if ( settings['typescript.tsdk'] === libPath && settings['typescript.enablePromptUseWorkspaceTsdk'] diff --git a/packages/next/lib/verifyTypeScriptSetup.ts b/packages/next/lib/verifyTypeScriptSetup.ts index e48e18ecbda6..d280046e3f1e 100644 --- a/packages/next/lib/verifyTypeScriptSetup.ts +++ b/packages/next/lib/verifyTypeScriptSetup.ts @@ -103,8 +103,9 @@ export async function verifyTypeScriptSetup({ } // Load TypeScript after we're sure it exists: + const tsPath = deps.resolved.get('typescript')! const ts = (await Promise.resolve( - require(deps.resolved.get('typescript')!) + require(tsPath) )) as typeof import('typescript') if (semver.lt(ts.version, '4.3.2')) { @@ -125,7 +126,7 @@ export async function verifyTypeScriptSetup({ await writeAppTypeDeclarations(dir, !disableStaticImages) if (isAppDirEnabled) { - await writeVscodeConfigurations(dir) + await writeVscodeConfigurations(dir, tsPath) } let result