2013-04-17 13 views
6

Teraz próbuję użyć przeglądarki Browserify i mam z tym problem.Kręgosłup z Lodasem zamiast podkreślnika i Browserify

Zawsze używam szkieletowej z Lodash zamiast podkreślenia, więc napisałem kilka podkładek skrypty 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' 

I faktycznie korzysta grunt-coffeeify budować moduły Browserify, i mówi o błędzie poniżej:

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. 

Co należy zmienić, aby działać poprawnie Backbone? Z góry dziękuję.

UPDATE

Jakoś to działa z kodów poniżej:

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

i wykomentuj kod poniżej backbone-1.0.0.js:

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

To wygląda jakby coś złego ...

Odpowiedz

3

b jest instancją browserify.

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

dla jQuery, spójrz na moją wersję na github: https://github.com/amiorin/jquery

+0

To nie dla mnie. Czy mógłbyś rozwinąć tę technikę? – rattray

0

Nie trzeba żadnych podkładek. Wszystko, czego potrzebujesz, to poprawny alias w zadaniu przeglądania.

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

Look at my example