From 4b367a1959f11db2e9b8681f82ff4f8bb2035c05 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 15 Nov 2021 15:58:43 +0000 Subject: [PATCH] fix(bridge): ensure `vue` ts alias points to original vue (#1924) --- docs/content/1.getting-started/3.bridge.md | 9 ++++++++- packages/bridge/src/app.ts | 11 +++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/content/1.getting-started/3.bridge.md b/docs/content/1.getting-started/3.bridge.md index 979331f70c..6a127bdf49 100644 --- a/docs/content/1.getting-started/3.bridge.md +++ b/docs/content/1.getting-started/3.bridge.md @@ -127,10 +127,17 @@ If you are using TypeScript, you can edit your `tsconfig.json` to benefit from a + "extends": "./.nuxt/tsconfig.json", "compilerOptions": { ... - } + }, ++ "vueCompilerOptions": { ++ "experimentalCompatMode": 2, ++ } } ``` +::alert +You may also need to add `@vue/runtime-dom` as a devDependency if you are struggling to get template type inference working with [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar). +:: + ## Migrate Composition API If you were previously using `@vue/composition-api` or `@nuxtjs/composition-api`, please read the [composition api migration guide](/getting-started/bridge-composition-api). diff --git a/packages/bridge/src/app.ts b/packages/bridge/src/app.ts index 1bde964325..d785a3fd45 100644 --- a/packages/bridge/src/app.ts +++ b/packages/bridge/src/app.ts @@ -50,6 +50,17 @@ export function setupAppBridge (_options: any) { nuxt.options.alias[alias] = nuxt.options.alias['vue2-bridge'] } + // Ensure TS still recognises vue imports + nuxt.hook('prepare:types', ({ tsConfig }) => { + tsConfig.compilerOptions.paths.vue2 = ['vue'] + delete tsConfig.compilerOptions.paths.vue + + // @ts-ignore + tsConfig.vueCompilerOptions = { + experimentalCompatMode: 2 + } + }) + // Deprecate various Nuxt options if (nuxt.options.globalName !== 'nuxt') { throw new Error('Custom global name is not supported by @nuxt/bridge.')