Skip to content

stub prototype and optionMergeStrategies for vue3 compat #40

Open
@tobiasdiez

Description

@tobiasdiez

Environment

  • Operating System: Linux
  • Node Version: v14.18.1
  • Nuxt Version: 2.16.0-27285136.ab1c6cb4
  • Package Manager: yarn@1.22.17
  • Bundler: Webpack
  • User Config: plugins, bridge, target, ssr, buildModules
  • Runtime Modules: -
  • Build Modules: @nuxt/bridge@3.0.0-27286006.a08b435

Reproduction

https://codesandbox.io/s/gracious-wildflower-g27zf

Describe the bug

The vueApp provided by nuxtApp in a plugin doesn't mock all vue properties, which make some libraries fail. I encountered so far prototype (with VueTailwind, as in the reproduction above) and config.optionMergeStrategies (with VueApollo).

Additional context

--- a/node_modules/@nuxt/bridge/dist/runtime/app.plugin.mjs
+++ b/node_modules/@nuxt/bridge/dist/runtime/app.plugin.mjs
@@ -23,7 +23,8 @@ export default (ctx, inject) => {
     vueApp: {
       component: Vue.component.bind(Vue),
       config: {
-        globalProperties: {}
+        globalProperties: {},
+        optionMergeStrategies: Vue.config.optionMergeStrategies
       },
       directive: Vue.directive.bind(Vue),
       mixin: Vue.mixin.bind(Vue),
@@ -33,7 +34,8 @@ export default (ctx, inject) => {
       use (vuePlugin) {
         vuePlugin.install(this)
       },
-      version: Vue.version
+      version: Vue.version,
+      prototype: {}
     },
     provide: inject,
     globalName: 'nuxt',

fixed it for me.

Logs

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions