2013-04-18 42 views
2

Lodash和Underscore有一個名爲mixin的方法,允許您擴展庫。你如何寫一個能擴展它們的庫?在node.js上擴展lodash /下劃線?

例如,如果你創建了一個名爲「extend_lodash.js」的文件,包含以下內容:

_.mixin({ 
    new_function:function(){} 
}) 

怎麼會用它在你的項目工作?下面的代碼將不起作用:

_ = require("lodash"); 
require("extend_lodash.js"); 
+0

** **怎麼沒有按」它的工作? – SLaks

+0

它顯然不起作用,因爲「_」沒有在extend_lodash.js中定義(拋出該錯誤),因爲node.js隔離了命名空間。如果我想要預期的效果,我必須調用eval(fs.readFileSync(「extend_lodash.js」))。 – MaiaVictor

+0

或者你可以在你的'extend_lodash.js'文件中需要'lodash'? – Chad

回答

4

由於'畝太短'也表明,有你的文件與lodash mixin返回lodash。

在你的 「extend_lodash.js」 文件:

var _ = require('lodash'); 
_.mixin({ 
    new_function:function(){} 
}); 
module.exports = _; 

然後在調用者,你只是需要你的mixin,並從獲得lodash:

var _ = require("extend_lodash");