Подтвердить что ты не робот

Node.js не может потребовать файл .js в том же каталоге

У меня есть проект node -webkit с main.js. На самом верху, у меня

var updater = require("./updater.js");

и у меня есть файл с именем updater.js в том же каталоге, что и main.js. Когда я запускаю приложение, я получаю сообщение об ошибке

Uncaught Error: Cannot find module './updater.js' 

updater.js имеет в себе одну строку:

module.exports = "Hello!";

Я понятия не имею, почему он не может потребовать файл. Я видел, что другой проект делает то же самое. Я могу require регулярных npm модулей просто отлично от того же main.js.

4b9b3361

Ответ 1

Это связано с тем, что при запуске приложения (main.js) с помощью node -webkit корневой (рабочий) каталог находится там, где находится index.html, поэтому './' относится к этому каталогу, а не к одному в котором находится файл, запрашивающий модуль.

Вы можете легко решить эту проблему, используя метод решения в модуле "путь" node и предоставить вывод из него методу require в рабочем файле

Просто выполните следующее:

var path = require('path');
var updater = require( path.resolve( __dirname, "./updater.js" ) );

EDIT: информация о глобальном node объекте '__dirname' (и другие) может найти здесь.