我试图将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']);
});