我拥有基于全局app
变量以这种方式声明的所有这些模块,然后通过gulpfile
捆绑
view1.js
var app = app || {}
app.View1 = Backbone.View.extend({});
view2.js
var app = app || {}
app.View1 = Backbone.View.extend({});
所以我使用以下文件引用文件:
var app = app || {};
new app.View1();
new app.View2();
此时此方法已过时。
使用babel
infact我希望使用新的时尚模块导出browserify
进行编译
view1.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
_
或$
中的各种全局变量未定义。
关于如何保留两种类型的模块并将它们捆绑在一起的任何想法?
答案 0 :(得分:1)
在您的主文件中,您可以导入jQuery
和_
并将其分配给Backbone
,如下所示:
import $ from "jquery";
import _ from "underscore";
Backbone.$ = $;
Backbone._ = _;
然后在您的其他文件中,您可以使用Backbone.$
& Backbone._
使用underscore
或jquery
。
或者只将它们作为依赖项导入到使用underscore
或jQuery
的文件中。这是正确的方法。
答案 1 :(得分:0)
您可以在Browserify选项中定义一些全局变量:Defining global variable for Browserify
在webpack中有ProvidePlugin个全局模块。