title: Cannot resolve RouterLink tag
body: <p>Vanilla Vue CLI installation aside from a handful of pre-installed stuff via NPM. </p>
  
  <p>I've read the online docs, I've read the forums but cannot get the Vue router to work. </p>
  
  <p>I've tried a number of different ways of importing the vue router, but the official document has <code>import VueRouter from 'vue-router'</code> and <code>Vue.use(VueRouter)</code>.</p>
  
  <p>adding router object results in "Uncaught ReferenceError: router is not defined" </p>
  
  <pre class="lang-js prettyprint-override"><code>// main.js
  
  import 'bootstrap'
  import 'bootstrap/dist/css/bootstrap.min.css'
  import Vue from 'vue'
  import App from './App.vue'
  import VueRouter from 'vue-router'
  //import axios from 'axios'
  import { library } from '@fortawesome/fontawesome-svg-core'
  import { faUserSecret } from '@fortawesome/free-solid-svg-icons'
  import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
  
  Vue.config.productionTip = false
  Vue.component('font-awesome-icon', FontAwesomeIcon)
  
  library.add(faUserSecret)
  
  Vue.use(VueRouter)
  
  export default new VueRouter({
    routes: [
      { path: '/', component: () =&gt; import('./views/Home.vue') },
      // { path: '/login', component: Login },
      // { path: '/about', component: About }
    ]
  })
  
  new Vue({
      render: h =&gt; h(App),
  }).$mount('#app')
  </code></pre>
  
  <pre><code>// App.vue
  
  &lt;template&gt;
    &lt;div id="app"&gt;
  
      &lt;div id="nav"&gt;
        &lt;router-link to="/"&gt;Home&lt;/router-link&gt; |
        &lt;router-link to="/about"&gt;About&lt;/router-link&gt; |
        &lt;router-link to="/groups"&gt;Events Near Me&lt;/router-link&gt;
      &lt;/div&gt;
  
      &lt;img alt="Vue logo" src="./assets/logo.png"&gt;
    &lt;/div&gt;
  &lt;/template&gt;
  
  &lt;script&gt;
  &lt;/script&gt;
  
  &lt;style&gt;
  #app {
    font-family: 'Avenir', Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
  }
  
  #nav {
    padding: 30px;
  }
  
  #nav a {
    font-weight: bold;
    color: #2c3e50;
  }
  
  #nav a.router-link-exact-active {
    color: #42b983;
  }
  
  &lt;/style&gt;
  </code></pre>
  
  <p>Results in: </p>
  
  <pre><code>vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Cannot read property 'resolve' of undefined"
  
  found in
  
  ---&gt; &lt;RouterLink&gt;
         &lt;App&gt; at src/App.vue
           &lt;Root&gt;
  warn @ vue.runtime.esm.js?2b0e:619
  logError @ vue.runtime.esm.js?2b0e:1884
  globalHandleError @ vue.runtime.esm.js?2b0e:1879
  handleError @ vue.runtime.esm.js?2b0e:1839
  Vue._render @ vue.runtime.esm.js?2b0e:3544
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  patch @ vue.runtime.esm.js?2b0e:6471
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  patch @ vue.runtime.esm.js?2b0e:6510
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  (anonymous) @ main.js?56d7:36
  ./src/main.js @ app.js:2354
  __webpack_require__ @ app.js:767
  fn @ app.js:130
  1 @ app.js:2368
  __webpack_require__ @ app.js:767
  (anonymous) @ app.js:902
  (anonymous) @ app.js:905
  Show 12 more frames
  vue.runtime.esm.js?2b0e:1888 TypeError: Cannot read property 'resolve' of undefined
      at Proxy.render (vue-router.esm.js?8c4f:1026)
      at VueComponent.Vue._render (vue.runtime.esm.js?2b0e:3542)
      at VueComponent.updateComponent (vue.runtime.esm.js?2b0e:4060)
      at Watcher.get (vue.runtime.esm.js?2b0e:4473)
      at new Watcher (vue.runtime.esm.js?2b0e:4462)
      at mountComponent (vue.runtime.esm.js?2b0e:4067)
      at VueComponent.Vue.$mount (vue.runtime.esm.js?2b0e:8409)
      at init (vue.runtime.esm.js?2b0e:3118)
      at createComponent (vue.runtime.esm.js?2b0e:5972)
      at createElm (vue.runtime.esm.js?2b0e:5919)
  logError @ vue.runtime.esm.js?2b0e:1888
  globalHandleError @ vue.runtime.esm.js?2b0e:1879
  handleError @ vue.runtime.esm.js?2b0e:1839
  Vue._render @ vue.runtime.esm.js?2b0e:3544
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  patch @ vue.runtime.esm.js?2b0e:6471
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  patch @ vue.runtime.esm.js?2b0e:6510
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  (anonymous) @ main.js?56d7:36
  ./src/main.js @ app.js:2354
  __webpack_require__ @ app.js:767
  fn @ app.js:130
  1 @ app.js:2368
  __webpack_require__ @ app.js:767
  (anonymous) @ app.js:902
  (anonymous) @ app.js:905
  Show 11 more frames
  vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Cannot read property 'resolve' of undefined"
  
  found in
  
  ---&gt; &lt;RouterLink&gt;
         &lt;App&gt; at src/App.vue
           &lt;Root&gt;
  warn @ vue.runtime.esm.js?2b0e:619
  logError @ vue.runtime.esm.js?2b0e:1884
  globalHandleError @ vue.runtime.esm.js?2b0e:1879
  handleError @ vue.runtime.esm.js?2b0e:1839
  Vue._render @ vue.runtime.esm.js?2b0e:3544
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  patch @ vue.runtime.esm.js?2b0e:6471
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  patch @ vue.runtime.esm.js?2b0e:6510
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  (anonymous) @ main.js?56d7:36
  ./src/main.js @ app.js:2354
  __webpack_require__ @ app.js:767
  fn @ app.js:130
  1 @ app.js:2368
  __webpack_require__ @ app.js:767
  (anonymous) @ app.js:902
  (anonymous) @ app.js:905
  Show 12 more frames
  vue.runtime.esm.js?2b0e:1888 TypeError: Cannot read property 'resolve' of undefined
      at Proxy.render (vue-router.esm.js?8c4f:1026)
      at VueComponent.Vue._render (vue.runtime.esm.js?2b0e:3542)
      at VueComponent.updateComponent (vue.runtime.esm.js?2b0e:4060)
      at Watcher.get (vue.runtime.esm.js?2b0e:4473)
      at new Watcher (vue.runtime.esm.js?2b0e:4462)
      at mountComponent (vue.runtime.esm.js?2b0e:4067)
      at VueComponent.Vue.$mount (vue.runtime.esm.js?2b0e:8409)
      at init (vue.runtime.esm.js?2b0e:3118)
      at createComponent (vue.runtime.esm.js?2b0e:5972)
      at createElm (vue.runtime.esm.js?2b0e:5919)
  logError @ vue.runtime.esm.js?2b0e:1888
  globalHandleError @ vue.runtime.esm.js?2b0e:1879
  handleError @ vue.runtime.esm.js?2b0e:1839
  Vue._render @ vue.runtime.esm.js?2b0e:3544
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  patch @ vue.runtime.esm.js?2b0e:6471
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  patch @ vue.runtime.esm.js?2b0e:6510
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  (anonymous) @ main.js?56d7:36
  ./src/main.js @ app.js:2354
  __webpack_require__ @ app.js:767
  fn @ app.js:130
  1 @ app.js:2368
  __webpack_require__ @ app.js:767
  (anonymous) @ app.js:902
  (anonymous) @ app.js:905
  Show 11 more frames
  vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Cannot read property 'resolve' of undefined"
  
  found in
  
  ---&gt; &lt;RouterLink&gt;
         &lt;App&gt; at src/App.vue
           &lt;Root&gt;
  warn @ vue.runtime.esm.js?2b0e:619
  logError @ vue.runtime.esm.js?2b0e:1884
  globalHandleError @ vue.runtime.esm.js?2b0e:1879
  handleError @ vue.runtime.esm.js?2b0e:1839
  Vue._render @ vue.runtime.esm.js?2b0e:3544
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  createChildren @ vue.runtime.esm.js?2b0e:6047
  createElm @ vue.runtime.esm.js?2b0e:5948
  patch @ vue.runtime.esm.js?2b0e:6471
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  init @ vue.runtime.esm.js?2b0e:3118
  createComponent @ vue.runtime.esm.js?2b0e:5972
  createElm @ vue.runtime.esm.js?2b0e:5919
  patch @ vue.runtime.esm.js?2b0e:6510
  Vue._update @ vue.runtime.esm.js?2b0e:3939
  updateComponent @ vue.runtime.esm.js?2b0e:4060
  get @ vue.runtime.esm.js?2b0e:4473
  Watcher @ vue.runtime.esm.js?2b0e:4462
  mountComponent @ vue.runtime.esm.js?2b0e:4067
  Vue.$mount @ vue.runtime.esm.js?2b0e:8409
  (anonymous) @ main.js?56d7:36
  ./src/main.js @ app.js:2354
  __webpack_require__ @ app.js:767
  fn @ app.js:130
  1 @ app.js:2368
  __webpack_require__ @ app.js:767
  (anonymous) @ app.js:902
  (anonymous) @ app.js:905
  Show 12 more frames
  vue.runtime.esm.js?2b0e:1888 TypeError: Cannot read property 'resolve' of undefined
      at Proxy.render (vue-router.esm.js?8c4f:1026)
      at VueComponent.Vue._render (vue.runtime.esm.js?2b0e:3542)
      at VueComponent.updateComponent (vue.runtime.esm.js?2b0e:4060)
      at Watcher.get (vue.runtime.esm.js?2b0e:4473)
      at new Watcher (vue.runtime.esm.js?2b0e:4462)
      at mountComponent (vue.runtime.esm.js?2b0e:4067)
      at VueComponent.Vue.$mount (vue.runtime.esm.js?2b0e:8409)
      at init (vue.runtime.esm.js?2b0e:3118)
      at createComponent (vue.runtime.esm.js?2b0e:5972)
      at createElm (vue.runtime.esm.js?2b0e:5919)
  
  </code></pre>