Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vue 3 - app.config is undefined. How to bypass this error?

I'm doing everything by the docs, but, still having an error in the console. What I'm trying is to create a global variable of a Firebase instance.

main.js:

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";

import firebase from 'firebase'
require('firebase/firestore')

const config = {
    // config
}

firebase.initializeApp(config)

const app = createApp(App)
  .use(store)
  .use(router)
  .mount("#app");

console.log(app.config) // undefined
app.config.globalProperties.$firebase = firebase;

Why is it undefined? Or should I overwrite property globalProperties myself in the config object?

Error screenshot

like image 567
Eldar Tailov Avatar asked Dec 10 '22 23:12

Eldar Tailov


2 Answers

const app = createApp(App).use(store).use(router).mount("#app") returns the root component instance not the app instance which has the field config, so, you should do:

const app = createApp(App)

const rootComponent = app.use(store)
  .use(router)
  .mount("#app");

console.log(app.config) 
app.config.globalProperties.$firebase = firebase;

Learn more about the differences here.

like image 111
Boussadjra Brahim Avatar answered Dec 27 '22 11:12

Boussadjra Brahim


config exists on the return value of createApp instead of the ending mount call:

const app = createApp(App);

app.use(store).use(router).mount('#app');

console.log(app.config); // Not undefined
like image 44
Daniel_Knights Avatar answered Dec 27 '22 11:12

Daniel_Knights