I want to create a chart using "Chartkick" with Vue. But it is not working properly and I am getting some errors. Error:
./node_modules/vue-chartkick/dist/vue-chartkick.esm.js 23:13-14 "export 'h' was not found in 'vue' @ ./node_modules/vue-chartkick/dist/vue-chartkick.esm.js @ ./src/main.js @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js
main.js:
import Vue from 'vue'
import VueRouter from 'vue-router'
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
import Chartkick from 'vue-chartkick'
import Chart from 'chart.js'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
Vue.use(Chartkick.use(Chart))
Vue.use(VueRouter)
Vue.use(BootstrapVue)
Vue.use(IconsPlugin)
Vue.config.productionTip = false
import App from './App.vue'
import Home from './components/pages/Home.vue'
import Products from './components/pages/Products.vue'
const router = new VueRouter({
mode: 'history',
routes: [
{ path: '/', component: Home, name: 'index'},
{ path: '/products', component: Products, name: 'products'},
],
/*
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { x: 0, y: 0 }
}
}
*/
})
new Vue({
el: '#app',
render: h => h(App),
router
})
package.json:
{
"name": "yns-site",
"description": "A Vue.js project",
"version": "1.0.0",
"author": "Yunus Emre Söğüt <yunusesogut@gmail.com>",
"license": "MIT",
"private": true,
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
},
"dependencies": {
"bootstrap": "^4.6.0",
"bootstrap-vue": "^2.21.2",
"chart.js": "^2.9.4",
"vue": "^2.6.12",
"vue-chartkick": "^1.0.0",
"vue-router": "^3.5.1"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
],
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.6.0",
"babel-preset-stage-3": "^6.24.1",
"cross-env": "^5.0.5",
"css-loader": "^0.28.7",
"file-loader": "^1.1.4",
"node-sass": "^4.5.3",
"sass-loader": "^6.0.6",
"vue-loader": "^13.0.5",
"vue-template-compiler": "^2.4.4",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.9.1"
}
}
component:
<template>
<div>
<hamburger-menu class="menu-opt"></hamburger-menu>
<h1>Burası ürünler sayfası</h1>
<div id="products">
<geo-chart :data="chartData"></geo-chart>
</div>
<footer-box></footer-box>
</div>
</template>
<script>
import HamburgerMenu from '../HamburgerMenu.vue'
import FooterBox from '../FooterBox.vue'
export default {
name: 'Products',
components: { HamburgerMenu, FooterBox},
data() {
return {
chartData: [["United States", 50], ["RU", 80], ["Germany", 70]]
}
}
}
</script>
<style lang="scss">
#products {
height: 1000px;
width: 100%;
}
</style>
How can this fix the problem. Thanks.
You are trying to use a version of vue-chartkick
thats is only for Vue 3 but you are using Vue 2
The latest version works with Vue 3. For Vue 2, use version 0.6.1 and this readme.