【发布时间】:2016-06-30 16:53:10
【问题描述】:
我正在努力将我的 Marionette 应用从 requirejs 切换到 Webpack,在遇到很多问题后,我几乎完成了,但有一件事我无法弄清楚:如何引导我的应用。
使用 requirejs,我刚刚声明了一个全局变量 var app;,我在其中存储了我的主要 Marionette.Application 对象,以便我可以从其他文件中访问它。
但是,Webpack 将 this 从 window 更改为当前模块,所以我的 var app; 突然不再是全局的了。
我尝试将它们全部分配给window:window.app;,但我仍然无法从其他模块访问它们。
我的最后一次尝试是使用ProvidePlugin,但我在除第一个文件之外的所有文件中都得到了空对象,因此我将其删除。
我当前的代码是:
bootstrap.js(webpack.config.js 中的主要入口点):
从“apps/main”导入应用程序;
// Start history when our window.app.ication is ready
app.listenTo(app, 'start', function() {
var that = this;
$.when(
this.auth.checkAuth()
).always(function(){
that.router.start();
});
});
app.start();
apps/main.js:
import Router from "routers/mainRouter";
module.exports = new Marionette.Application({
initialize: function(){
this.router = new Router();
}
});
路由器/mainRouter.js:
import App from "apps/main";
module.exports = Marionette.AppRouter.extend({
start: function(){
App.something();
},
});
在mainRouter 我得到:can't do something() on undefined。
有什么想法吗?
【问题讨论】:
标签: webpack marionette