如何将Vue.js与Requirejs结合使用?

时间:2019-03-02 10:42:29

标签: javascript vue.js webpack vuejs2

我已经使用Vue.js生成了示例vue-cli项目,并由

构建
vue build --target lib --name myWidget src/main.js 

我必须使用Requirejs来加载它:

    <script>
        requirejs.config({
            paths: {
                "Vue": "https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue",
                "myWidget": "https://codematic.tech/yamaWidget.umd",
            }
        });
    </script>
    <script>
        require(["Vue"], function (Vue) {
            console.log('Vue loaded');
            require(["myWidget"], function (widget) {
                console.log('Widget loaded');
            });
        });
    </script>

看起来应该可以,但是我遇到了一个错误:

TypeError: Cannot read property 'config' of undefined

指向

Vue.config.productionTip = false

在源代码中。在要求Vue = window.Vue;之后,我设法通过在Vue的main.js文件中添加window.Vue = Vue和在<script>标记中添加Vue来解决此问题。库正在加载,正在装入#app中。看起来很奇怪,但是正在工作。

问题是当我将某些内容导入Vue的main.js文件中时。例如 import Snotify from 'vue-snotify'; 在下面给我一个错误:

Cannot read property 'extend' of undefined

这导致我进入行:

var script = external_commonjs_vue_commonjs2_vue_root_Vue_default.a.extend({

顺便说一句-当我直接通过<script>标签加载Vue.js和myWidget.umd.js时,一切工作正常!

1 个答案:

答案 0 :(得分:0)

已解决。问题是外部库vue-snotify导致了此问题。