2013-04-17 14 views
6

Ora sto cercando di usare Browserify, e ho un problema con esso.Backbone con Lodash invece di Underscore e Browserify

Io uso sempre Backbone con Lodash invece di sottolineatura, così ho scritto alcuni script Spessore per 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' 

Io in realtà uso grunt-coffeeify per costruire i moduli Browserify, e si dice un errore di seguito:

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. 

Cosa devo cambiare per funzionare correttamente Backbone? Grazie in anticipo.

UPDATE

In qualche modo, funziona con i codici di seguito:

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

E come commento codice qui sotto a 012.:

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

Questo sembra qualcosa che non va però ...

risposta

3

b è un'istanza di browserify.

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

per jQuery, guarda la mia versione su github: https://github.com/amiorin/jquery

+0

questo non ha funzionato per me. Potresti espandere questa tecnica? – rattray

0

Lei non è necessario alcun spessori. Tutto ciò di cui hai bisogno è un alias corretto nell'attività di browserify.

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

Look at my example

Problemi correlati