16

i recently learning about vue

I have this file main.js

import Vue from 'vue/dist/vue.js'
import Buefy from 'buefy'
import 'buefy/lib/buefy.css'
Vue.use(Buefy)

var App = new Vue({
    el: '#app',
    data: {
          message : "It's working"
    }
})

and here is my html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Vue Example</title>
  </head>
  <body>
    <h3 id="app">{{ message }}</h3>
    <script src="dist/build.js"></script>

    <script>

    </script>
  </body>
</html>

It's working. But, now i'm trying to do something with my script. I change main.js (I'm using webpack)

import Vue from 'vue/dist/vue.js'
import Buefy from 'buefy'
import 'buefy/lib/buefy.css'
Vue.use(Buefy)

then my index.html to this

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Vue Example</title>
  </head>
  <body>
    <h3 id="app">{{ message }}</h3>
    <script src="dist/build.js"></script>

    <script>
var App = new Vue({
    el: '#app',
    data: {
        message:"It's not working"
    }
})
    </script>
  </body>
</html>

and i get this error

Uncaught ReferenceError: Vue is not defined

How can i fix this ?

1
  • I think var App = new Vue() should be in main.js Commented Jul 29, 2017 at 11:44

1 Answer 1

42

If you want to make a new instance of Vue directly in index.html you should either include the library in your index.html:

<script src="https://unpkg.com/[email protected]"></script>

Or you need to assign the Vue to window object in main.js like so:

main.js:

 import Vue from 'vue';
 window.Vue = Vue;

then in index.html you have access to Vue() because it is a global property of window object.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.