Пространства имен в node.js с требованием

. Я играю и узнаю о клятвах с личным проектом. Это небольшая клиентская библиотека, тестирование которой выполняется в vows. Поэтому я должен собрать и протестировать файл, написанный следующим образом:

(function(exports) { 
    var module = export.module = { "version":"0.0.1" }; 
    //more stuff
})(this);

В моем тестировании (на основе science.js , d3 и т. д. )требуется такой модуль:

require("../module");

Я продолжал получать сообщение об ошибке «модуль не определен» при попытке запустить тесты, поэтому я пошел в repl и запустил:

require("../module")

и он вернулся:

{ module: { version: "0.0.1" } }

Я понимаю, что мог бы сделать что-то вроде:

var module = require("../module").module;

но чувствую, что я создаю проблему, делая это таким образом, тем более что библиотеки, на которых я основывал этот проект, делают это в формате, который я описал.

Я хотел бы, чтобы мой проект вел себя аналогично тем, на которых я его основывал, где:

require("../module");

создает переменную в этом пространстве имен:

module.version; //is valid.

Я видел это во множестве библиотек, и я следую формату и мыслительному процессу до T, но считаю, что могу упустить что-то о поведении require, о котором я не знаю.

8
задан Miles McCrocklin 22 July 2012 в 18:06
поделиться