1) Map.vue
<template>
<MglMap :accessToken="accessToken" :mapStyle="mapStyle" />
</template>
<script>
import Mapbox from "mapbox-gl";
import "../../node_modules/mapbox-gl/dist/mapbox-gl.css"
import { MglMap } from "vue-mapbox";
export default {
components: {
MglMap
},
data() {
return {
accessToken: ACCESS_TOKEN,
mapStyle: MAP_STYLE // token и style конечно вбиваю свои, просто убрал из кода
};
},
created() {
this.mapbox = Mapbox;
}
};
</script>
2) App.vue
<template>
<v-app id="app">
<v-app-bar app>
<v-toolbar-title class="headline text-uppercase">
<span>Vuetify</span>
<span class="font-weight-light">MATERIAL DESIGN</span>
</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn
text
href="
https://github.com/vuetifyjs/vuetify/releases/latest"
target="_blank">
<span class="mr-2">Latest Release</span>
</v-btn>
</v-app-bar>
<v-content>
<map/>
</v-content>
</v-app>
</template>
<script>
import Map from './components/Map.vue'
export default {
components: {
Map
}
}
</script>
<style>
#app {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
width: 100%;
}
</style>
3) Vue.config.js
module.exports = {
'transpileDependencies': [
'vuetify'
],
chainWebpack: config => { // to turn off eslint
config.module.rules.delete('eslint');
}
};
4) main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router/router'
import store from './store'
import vuetify from './plugins/vuetify'
import 'roboto-fontface/css/roboto/roboto-fontface.css'
import '@mdi/font/css/materialdesignicons.css'
Vue.config.productionTip = false
new Vue({
router,
store,
vuetify,
render: h => h(App)
}).$mount('#app');