所有这些模块都是基于全局app
变量以这种方式声明的,然后通过gulpfile
绑定
- 视图1.js *
var app = app || {}
app.View1 = Backbone.View.extend({});
- 视图2.js *
var app = app || {}
app.View1 = Backbone.View.extend({});
因此,我在文件之间引用使用:
var app = app || {};
new app.View1();
new app.View2();
在这一点上,这种方法已经过时。
使用babel
实际上我想使用browserify
编译新的时尚模块导出
- 视图1.js *
import Backbone
export default = Backbone.View.extend({});
现在,我的问题是我想在不编辑旧模块的情况下开始迁移(至少现在是这样)。
import * as _ from "underscore";
import Backbone from "Backbone";
import * as LoginModal from "../views/loginModal";
import Router from "./router";
new LoginModal();
new Router();
Backbone.history.start({
pushState : true,
hashChange : false
});
问题是在LoginModal
中,_
或$
等不同的全局变量是未定义的。有没有关于如何保留这两种类型的模块并将它们捆绑在一起的想法?
2条答案
按热度按时间gjmwrych1#
在主文件中,您可以导入
jQuery
和_
,并将其分配给Backbone
,如下所示:然后在其他文件中,您可以只使用
Backbone.$
和Backbone._
来使用underscore
或jquery
。或者只将它们作为依赖项导入到使用
underscore
或jQuery
的文件中。这是正确的方法。f45qwnt82#
您可以在Browserify选项中定义一些全局变量:Defining global variable for Browserify
在webpack中,全局模块有ProvidePlugin。