I'm wondering if it is possible to let to a Vue App to read an external configuration file. I imagine something in which I deploy the application, ship the application with the config file; at this point it should be possibile to change the configuration in the external file without having to rebuilt the entire application. Is there someway I can achieve that result? Now I am using a separated Vuex store but i cannot change configuration without rebuilding the entire app.
I forgot to mention that the project is made with Vue CLI.
You can fetch config.json
from public folder and then load your Vue app in the resolve callback
Place your configuration keys in /public/config.json
file
{
"KEY": "value"
}
Then in your /src/main.js
file
fetch(process.env.BASE_URL + "config.json")
.then((response) => response.json())
.then((config) => {
Vue.prototype.$config = config
new Vue({
router,
store,
render: (h) => h(App)
}).$mount("#app")
})
You will have your configuration loaded application-wide. You can then just use
mounted() {
this.$config.KEY // "value"
}
in your Vue components
Update Nov 23, 2022 (Adding Vue 3 Version):
// VUE 3 Version
const app = createApp(App)
fetch(process.env.BASE_URL + "config.json")
.then((response) => response.json())
.then((config) => {
// either use window.config
window.config = config
// or use [Vue Global Config][1]
app.config.globalProperties.config = config
// FINALLY, mount the app
app.mount("#app")
})