У меня есть эта структура каталогов:Требуется модуль по отношению к исходному коду
project/
mymodule.js
test/
run.js
node_modules/
canvas/
У меня есть код следующим образом:
run.js
var Canvas = require(__dirname+"/../mymodule");
mymodule.js
if (typeof require==='function' && typeof module==='object'){
// when using mymodule with Node the 'canvas' module must be available
var canvas = require('canvas');
module.exports = canvas;
} else {
// code that works in a web browser, without Node
}
Результат node test/run.js
: Error: Cannot find module 'canvas'
.
Как я могу сделать это так, чтобы require
от mymodule
знает, как выглядит относительно исходного сценария? Или это противоречит тому, как работают модули узла? Должен ли я перемещать canvas
(который используется только для тестирования на моем конце) из каталога test
?
Ваше первое предложение будет работать, но будет работать только для меня, а не для пользователей моего модуля, у которого будет «нормальная» структура модуля. Второе - последнее предложение моего вопроса (которое, если это действительно единственный способ, является тем, что, я полагаю, должен сделать). – Phrogz
http://nodejs.org/api/modules.html#loading_from_node_modules_Folders –