2014-10-07 80 views
1

我喜欢browserify的想法,但我无法绕过我的脑袋需要'全局'变量,如jQuery和lodash。我希望:需要jQuery和lodash与browserify

// 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($, _) 

是不是有什么毛病我超出了这个应用程序,或者是有什么我根本不了解有关browserify?

+0

,你需要需要jQuery和lodash了'一个模块。 – zzzzBov 2014-10-07 15:35:26

+0

我有同样的问题,但我需要在同一个文件中的lo-dash,并且__extend bla bla-lodash可以工作,但我不能在函数中使用lodash ...代码示例在这里 - http://pastebin.com/YufmJiqF 你解决了这个问题吗? – 2015-04-27 15:21:47

+0

嗯,解决问题。 只需将_重命名为'lodash'即可,并且一切正常;) – 2015-04-27 15:28:59

回答

2

我们正在使用browserify(在我们的例子中用gulp),并且像使用thw窗口对象一样初始化全局变量。如果你必须做一些测试,你也可以在你的控制台中使用它们。

window._ = require('lodash'); 

,或者,如果你使用ES6:如果你想使用jQuery和lodash在`了`

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

希望这有助于