【发布时间】:2014-04-11 11:44:20
【问题描述】:
我刚刚开始使用 Node.js、Mocha 和 Browserify。
我有一个依赖于 jQuery 的模块,而我的规范也依赖于 jQuery。为了在模块中简单地做require('jquery'),而不是require('jquery')(window),我在我的规范文件中创建了一个jsdomwindow并将它分配给global.window:
var $;
beforeEach(function () {
var doc = jsdom.jsdom('<html><body></body></html>');
global.window = doc.createWindow();
$ = require('jquery');
...
});
通过这种方式,我的规范可以使用 jQuery 来查找 DOM 节点并测试预期,并且我的模块可以使用 jQuery 而无需显式传递 window。
这一切似乎都很好,但这是“正确”的做法吗?我进行了很多搜索,但找不到任何其他提及使用global.window 这种方式传递给 jQuery 的内容。从技术上讲,我认为window 是我的模块的依赖项,所以我是否应该明确地将它传递给我的模块并调用require('jquery')(window) 而不是require('jquery')?
创建需要 jQuery 的 CommonJS 模块的常见做法是什么?
【问题讨论】:
标签: javascript jquery node.js mocha.js browserify