2017-10-20 227 views
1

我有一个基于全球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各种全局为_$是不确定的。 关于如何保持这两种类型的模块并将它们捆绑在一起的任何想法?

回答

1

在你的主文件可以导入jQuery_并指定为Backbone像这样:

import $ from "jquery"; 
 
import _ from "underscore"; 
 

 
Backbone.$ = $; 
 
Backbone._ = _;

,然后在其他文件,你可以用Backbone.$ & Backbone._到使用underscorejquery

或者仅将它们作为依赖项导入使用underscorejQuery的文件中。这是做到这一点的正确方法。

+0

uhmmm它可以工作,但我想避免修改所有的旧文件 – steo

+0

好吧,你将不得不从''下划线''导入_和从$ jquery中导入$然后使用它们。这是唯一的两个选择。 – Win