2017-10-20 3 views
1

j'ai tous ces modules qui sont déclarés dans ce mode basé sur une variable globale app qui est ensuite empaqueté par gulpfileMigrer anciens modules Backbone façonné à ES6 modules

view1.js

var app = app || {} 
app.View1 = Backbone.View.extend({}); 

view2.js

var app = app || {} 
app.View1 = Backbone.View.extend({}); 

Donc je référence entre les fichiers en utilisant:

var app = app || {}; 
new app.View1(); 
new app.View2(); 

À ce stade, cette approche est obsolète.

En utilisant babel enfait je voudrais compiler avec browserify à l'aide de nouvelles exportations de modules de mode

de view1.js

import Backbone 
export default = Backbone.View.extend({}); 

Maintenant, mon problème est que je voudrais commencer la migration sans modifier le anciens modules (au moins pour l'instant). J'ai essayé quelque chose comme ça:

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 
}); 

Le problème est que dans LoginModal divers que _ ou GLOBALS $ ne sont pas définis. Toute idée sur la façon de garder les deux types de modules et de les regrouper?

Répondre

1

Dans votre fichier principal, vous pouvez importer jQuery et _ et l'affecter à Backbone comme ceci:

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

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

Et puis dans vos autres fichiers, vous pouvez simplement utiliser Backbone.$ & Backbone._ à utilisez underscore ou jquery.

ou seulement les importer en tant que dépendances dans les fichiers qui utilisent underscore ou jQuery. C'est la bonne façon de le faire.

+0

uhmmm cela pourrait fonctionner mais je voudrais éviter de modifier tous les anciens fichiers – steo

+0

et vous devrez importer '_ de" souligner "' et 'importer $ de" jquery "' dans les fichiers que vous avez les utilisait alors. Ce sont les deux seules options. – Win