2014-10-07 2 views
1

Мне нравится идея браузера, но у меня возникают проблемы с переносом головы вокруг требующих глобальных переменных, таких как jQuery и lodash. Я бы ожидать:Требуется jQuery и lodash с обозревателем

// application.js 
var $ = require('jquery') 
var _ = require('lodash') 
var a = require('./path/to/module/a.js') 

Чтобы $ и _ доступны в модуль. В конце концов, этот код скомпилирован и сначала определены $ и _. Однако я получаю проблему, и страница не загружается, заявив, что $ и _ не определены. Хорошо, я не понимаю, но, по крайней мере, я бы ожидал:

// a.js 
var $ = require('jquery') 
var _ = require('lodash') 

var AClass = function() { 
    console.log($, _) 
} 
module.exports = AClass 

для запуска без проблем. Тем не менее, я получаю ошибки говорят $ и _ не определены, хотя в обоих файлах следующий код работает:

var $ = require('jquery') 
var _ = require('lodash') 
console.log($, _) 

Есть ли что-то не так с моим приложением за это, или есть что-то я принципиально не понимание о браузере?

+0

, если вы хотите использовать JQuery и lodash в 'Ā', вам нужно требовать JQuery и lodash в' a'. – zzzzBov

+0

У меня такая же проблема, но мне нужен lo-dash в том же файле, а до _.extend bla bla-lodash работает, но я не могу использовать lodash в функции ... здесь пример кода - http://pastebin.com/YufmJiqF Вы решаете проблему? –

+0

hmm, решаем проблема. Просто переименуйте _ в 'lodash', и все отлично работает;) –

ответ

2

Мы используем браузер (с глотком в нашем случае), и мы инициализируем глобальные переменные, например, используя оконный объект thw. Таким образом, вы также можете использовать их в консоли, если вам нужно выполнить некоторые тесты.

window._ = require('lodash'); 

или, если вы используете ES6:

import _ from 'lodash'; 
window._ = _; 

Надеется, что это помогает

Смежные вопросы