2014-10-07 84 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._ = _; 

希望這有助於