I have recently started building Vue.js components for my Laravel apps. When I first tried I found it difficult to get Vue.js to work and also allow the use of the excellent Vue Devtools chrome extension. This is how I finally got it working with no errors.
layouts\app.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>EPS RM | @yield('title')</title>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<link href="{{ asset('css/parsley.min.css') }}" rel="stylesheet">
@yield('styles')
</head>
<body>
<div id="app">
@include('partials.nav')
<main class="py-4">
@include('partials.messages')
@yield('content')
</main>
</div>
<script src="{{ asset('js/app.js') }}"></script>
@yield('scripts')
</body>
</html>
Note that the <script src=”{{ asset(‘js/app.js’) }}”></script> line must come after the page content as the <div id=’app’> must be loaded first. This set up can be tested by loading the ExampleComponent in a view.

Comments