1

我试图在 require 调用后将整个模块拉入另一个文件的当前范围。

例如,如果我的模块如下所示:

exports.chai = require "chai"
exports.mocha = require "mocha"
exports.Q = require "q"

然后如何访问单个变量,就像它们是当前文件中的全局变量一样?因此,我可以键入 chai,而不是做类似 requireVar.chai 的事情?

感谢您的任何建议

4

3 回答 3

4

Using coffeescript, I recommend you use the destructuring assignment feature:

{chai, mocha, Q} = require 'some_module'

// use chai, mocha and Q for good stuff
于 2013-02-10T15:29:47.957 回答
1

如果您真的非常想这样做,我想您可以使用with

with (require('yourMod')) {
    // use chai, mocha etc.
}

请注意,没有人喜欢with,尤其是Douglas Crockford。实际使用 requireVar.chai好的;它消除了关于来源的任何歧义 chai并使您易于理解代码/模块的结构。

如果你觉得打字很无聊requireVar,就把它写得很短;a.chai.

于 2013-02-09T16:05:42.240 回答
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();
于 2013-02-09T16:02:46.620 回答