在使用Laravel/Homestead的OS X中,我在使用Vue(v2.2.1)时遇到了一个错误.组件不会加载,控制台错误为"Uncaught TypeError:Vue.component不是函数".

Full console error

    Uncaught TypeError: Vue.component is not a function
        at eval (eval at <anonymous> (app.js:321), <anonymous>:17:5)
        at Object.<anonymous> (app.js:321)
        at __webpack_require__ (app.js:20)
        at app.js:64
        at app.js:67  

让我恼火的是,如果我改变了应用程序.js,该网页包不会更新以反映任何更改.所以我需要A)解决上述问题,B)找出如何让网页在控制台中显示更新.

任何帮助都将不胜感激!我是个笨蛋.这是我的密码...

app.js file

    Vue.component('video-upload', require('./components/VideoUpload.vue'));

    const app = new Vue({
        el: 'body'
    });

VideoUpload.vue

    <template>
        <div class="container">
            <div class="row">
                <div class="col-md-8 col-md-offset-2">
                    <div class="panel panel-default">
                        <div class="panel-heading">Example</div>

                        <div class="panel-body">
                            This is an example
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </template>

    <script>
        export default {
            mounted() {
                console.log('Component mounted.')
            }
        }
    </script>

upload.blade.php

    @extends('layouts.app')

    @section('content')
        <video-upload></video-upload>
    @endsection

package.json

    {
      "private": true,
      "scripts": {
        "prod": "gulp --production",
        "dev": "gulp watch"
      },
        "devDependencies": {
        "bootstrap-sass": "^3.3.7",
        "gulp": "^3.9.1",
        "jquery": "^3.1.0",
        "laravel-elixir": "^6.0.0-9",
        "laravel-elixir-vue": "^0.1.4",
        "laravel-elixir-webpack-official": "^1.0.2",
        "lodash": "^4.14.0",
        "video.js": "^5.11.6",
        "vue": "^2.2.1",
        "vue-resource": "^0.9.3"
      }
    }

推荐答案

1

package.json

"laravel-elixir-vue-2": "^0.3.0"

然后跑

<!-- language: lang-js -->
npm install

OR

2

npm install laravel-elixir-vue-2 --save-dev

And then

改变你的gulp 文件.像这样

<!-- language: lang-js -->
var elixir = require('laravel-elixir')

require('laravel-elixir-vue-2');

Laravel相关问答推荐

laravel错误更新使用外键的数据库

我在 laravel 中插入多个复选框值.我怎样才能做到这一点?

Laravel init 查询多种用途

Laravel中具有两个外键字段的数据库一对多

Twilio 查找 API 不起作用?

在 php Laravel 5 中创建自定义帮助函数的最佳实践是什么?

如何从不是控制器方法的方法发送响应?

如何使用命令行手动运行 laravel/lumen 作业(job)

laravel 搜索多个以空格分隔的单词

如何调试 Laravel 框架?

调整行数以形成:: Textarea Laravel 5

如何在不使用视图的情况下使用 Laravel 4 发送Electron邮件?

Laravel 应用程序连接数据库时速度很慢

在 Laravel 中结合 AND/OR Eloquent的查询

登录后 DevTools 无法解析 SourceMap 错误将重定向到该 js 文件

Laravel 5 new auth:获取当前用户以及如何实现角色?

如何在脚本文件中使用 Laravel Blade?

为什么`catch (Exception $e)` 不处理这个`ErrorException`?

带有 Xdebug 的 Laravel 5 总是抛出The payload is invalid..

如何在 laravel 表单验证错误消息中给出自定义字段名称