2013-04-17 1 views
6

J'essaie maintenant d'utiliser Browserify, et j'ai un problème avec cela.Backbone avec Lodash au lieu de Underscore, et Browserify

J'utilise toujours Backbone avec Lodash au lieu de soulignement, donc je l'ai écrit quelques scripts shim pour Browserify:

shims/lodash.js:

'use strict'; 
/* global window,require,module */ 
require('../vendor/lodash.underscore-1.2.0'); 
module.exports = window._; 

shims/backbone.js:

'use strict'; 
/* global window,require,module */ 
require('../vendor/backbone-1.0.0'); 
module.exports = window.Backbone; 

app.coffee:

'use strict' 
$ = require './shims/jquery' 
_ = require './shims/underscore' 
Backbone = require './shims/backbone' 

J'utilise en fait grunt-coffeeify pour construire les modules Browserify, et il dit une erreur ci-dessous:

Running "coffeeify:source" (coffeeify) task 
Warning: module "underscore" not found from "/Users/User/proj/src/js/vendor/backbone-1.0.0.js" Use --force to continue. 

Que dois-je changer pour travailler correctement Backbone? Merci d'avance.

MISE À JOUR

D'une certaine façon, cela fonctionne avec les codes ci-dessous:

shims/lodash.js:

'use strict'; 
/* global require,module */ 
module.exports = require('../vendor/lodash-1.2.0'); 

shims/backbone.js:

'use strict'; 
/* global window,require,module */ 
window.$ = require('./jquery'); 
window._ = require('./lodash'); 
module.exports = require('../vendor/backbone-1.0.0'); 

et commentez le code ci-dessous backbone-1.0.0.js:

//if (!_ && (typeof require !== 'undefined')) _ = require('underscore'); 

Cela ressemble quelque chose de mal mais ...

Répondre

3

b est une instance de browserify.

b.require('lodash', {expose: 'underscore'}); 

pour jQuery, regardez ma version sur github: https://github.com/amiorin/jquery

+0

Cela ne fonctionne pas pour moi. Pourriez-vous développer cette technique? – rattray

0

Vous ne avez pas besoin de cales. Tout ce dont vous avez besoin est un alias correct dans la tâche browserify.

alias: ['./node_modules/lodash/dist/lodash.underscore.js:underscore'] 

Look at my example

Questions connexes