迁移老式骨干模块ES6模块
问题描述:
我有一个基于全球app
变量,然后通过gulpfile
迁移老式骨干模块ES6模块
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我想使用新的时尚模块出口
view1.js
import Backbone
export default = Backbone.View.extend({});
现在,我的问题是,我想开始不编辑迁移与browserify
编译旧模块(至少现在)。我想类似的东西:
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
各种全局为_
或$
是不确定的。 关于如何保持这两种类型的模块并将它们捆绑在一起的任何想法?
答
在你的主文件可以导入jQuery
和_
并指定为Backbone
像这样:
import $ from "jquery";
import _ from "underscore";
Backbone.$ = $;
Backbone._ = _;
,然后在其他文件,你可以用Backbone.$
& Backbone._
到使用underscore
或jquery
。
或者仅将它们作为依赖项导入使用underscore
或jQuery
的文件中。这是做到这一点的正确方法。
uhmmm它可以工作,但我想避免修改所有的旧文件 – steo
好吧,你将不得不从''下划线''导入_和从$ jquery中导入$然后使用它们。这是唯一的两个选择。 – Win