首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将传统的骨干模块迁移到es6模块

将传统的骨干模块迁移到es6模块
EN

Stack Overflow用户
提问于 2017-10-20 11:15:14
回答 2查看 864关注 0票数 1

我拥有以这种方式声明的所有这些模块,这些模块基于一个全局app变量,然后通过gulpfile绑定

view1.js

代码语言:javascript
复制
var app = app || {}
app.View1 = Backbone.View.extend({});

view2.js

代码语言:javascript
复制
var app = app || {}
app.View1 = Backbone.View.extend({});

因此,我使用以下方法在文件之间引用:

代码语言:javascript
复制
var app = app || {};
new app.View1();
new app.View2();

在这一点上,这种方法已经过时。

事实上,我想使用babel使用新的时尚模块导出与browserify一起编译

view1.js

代码语言:javascript
复制
import Backbone
export default = Backbone.View.extend({});

现在,我的问题是,我希望不编辑旧模块就开始迁移(至少目前是这样)。我试过这样的方法:

代码语言:javascript
复制
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中,_$等各种全局值都是未定义的。对于如何保持这两种类型的模块并将它们捆绑在一起,有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2017-10-20 11:21:57

在主文件中,您可以导入jQuery_,并将其分配给Backbone,如下所示:

代码语言:javascript
复制
import $ from "jquery";
import _ from "underscore";

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

然后,在其他文件中,只需使用Backbone.$ & Backbone._来使用underscorejquery

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

票数 1
EN

Stack Overflow用户

发布于 2017-10-30 09:10:27

可以在Browserify选项中定义一些全局变量:为Browserify定义全局变量

在webpack中,全球模块有ProvidePlugin

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46847978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档