我试图在 require 调用后将整个模块拉入另一个文件的当前范围。
例如,如果我的模块如下所示:
exports.chai = require "chai"
exports.mocha = require "mocha"
exports.Q = require "q"
然后如何访问单个变量,就像它们是当前文件中的全局变量一样?因此,我可以键入 chai,而不是做类似 requireVar.chai 的事情?
感谢您的任何建议
我试图在 require 调用后将整个模块拉入另一个文件的当前范围。
例如,如果我的模块如下所示:
exports.chai = require "chai"
exports.mocha = require "mocha"
exports.Q = require "q"
然后如何访问单个变量,就像它们是当前文件中的全局变量一样?因此,我可以键入 chai,而不是做类似 requireVar.chai 的事情?
感谢您的任何建议
Using coffeescript, I recommend you use the destructuring assignment feature:
{chai, mocha, Q} = require 'some_module'
// use chai, mocha and Q for good stuff
如果您真的非常想这样做,我想您可以使用with
:
with (require('yourMod')) {
// use chai, mocha etc.
}
请注意,没有人喜欢with
,尤其是Douglas Crockford。实际使用 requireVar.chai
是好的;它消除了关于来源的任何歧义, chai
并使您易于理解代码/模块的结构。
如果你觉得打字很无聊requireVar
,就把它写得很短;a.chai
.
你不能这样做:
var requireVar = require('yourmod')
, chai = requireVar.chai
, mocha = requireVar.mocha
, Q = requireVar.Q
;
//then use chai, mocha and Q afterwards
chai.hoo();
mocha.mon();
Q.tip();