您如何正确地要求('骨干')?

时间:2017-03-08 18:52:58

标签: javascript backbone.js webpack laravel-elixir

我试图将Backbone纳入我现有的Laravel Spark / Vuejs应用程序中,该应用程序很快就会成为SPA。 Spark包含来自NPM的多个库,使用如下代码:

window._ = require('underscore'); 
if (window.$ === undefined || window.jQuery === undefined) {
    window.$ = window.jQuery = require('jquery');
}

当我尝试像这样要求Backbone时:

window.Backbone = require('backbone'); 

或简单地说:

require('backbone');

它不起作用。 Backbone未定义。

注意:在我尝试要求Backbone之前,需要使用Underscore和jQuery,如上所示。

以下是问题:

为什么Spark似乎"注册"带有窗口的多个库(如上所示),但是当我尝试使用Backbone执行此操作时,它似乎没有?

编辑:

导入Backbone并在同一模块中使用可以正常工作,但我的目标是允许全局使用Backbone,类似于全局使用_和$。我意识到这是不赞成的,但老实说,我无法确定为什么在这一点上将Backbone置于全球范围将是一个负面因素。

Laravel Elixir config(使用webpack):

elixir(function(mix) {
    mix.less('app.less')
        .webpack('app.js', null, null, {
            resolve: {
                modules: [
                    path.resolve(__dirname, 'vendor/laravel/spark/resources/assets/js'),
                    'node_modules'
                ]
            }
        })
        .copy('node_modules/sweetalert/dist/sweetalert.min.js', 'public/js/sweetalert.min.js')
        .copy('node_modules/sweetalert/dist/sweetalert.css', 'public/css/sweetalert.css')
        .version(['css/app.css', 'js/app.js']);
});

0 个答案:

没有答案