我正在尝试在需要调用之后将整个模块拉入另一个文件的当前范围。
例如,如果我的模块看起来像这样:
exports.chai = require "chai"
exports.mocha = require "mocha"
exports.Q = require "q"
如何访问各个变量,就像它们是当前文件中的全局变量一样?所以,不要像requireVar.chai那样做,我可以输入chai?
感谢您的任何建议
答案 0 :(得分:4)
使用coffeescript,我建议您使用destructuring assignment功能:
{chai, mocha, Q} = require 'some_module'
// use chai, mocha and Q for good stuff
答案 1 :(得分:1)
你不能这样做:
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();
答案 2 :(得分:1)
如果真的,真的想要这样做,我想你可以使用with
:
with (require('yourMod')) {
// use chai, mocha etc.
}
请注意,没有人喜欢with
,尤其是Douglas Crockford。实际上使用 requireVar.chai
好;它消除了 {/ em> chai
所源自的任何歧义,并使您更容易理解代码/模块的结构。
如果您无聊地输入requireVar
,请将其缩短; a.chai
。