Sanu0074
@Sanu0074

Почему при запуске из bat файла node.js не может найти подключамые модули?

Есть батник:

set NODE_PATH="."
set NODE_ENV="development"
node --use_strict  C:\Users\uuui\js\bin\server.js
PAUSE

Все вроде бы работает, переменные в process.env установлены правильно, но при старте получаю ошибку: Error: Cannot find module
Как будто бы нода что-то сама меняет. А вот через webstorm все работает нормально.

UPD:

Покопавшись, я понял, что проблема в том что все пути передаваемые в require не относительные, поэтому нода и ищет модули не там где необходимо. Но как теперь быть? Править все пути используя модуль path, или переделывать на относительные? Тут же возникнет проблема с указанием папок внутри скриптов (например загрузка файлов и др.), т.е. для них тоже нужно будет переделывать пути на относительные.

Существует ли более упрощенный способ выхода из ситуации? WebStorm же как-то с этим справляется...
  • Вопрос задан
  • 440 просмотров
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
Думаю, что нода переменные видит, скорее всего она меняет текущий каталог и "." уже смотрит куда-то в другое место. Напишите полный путь в NODE_PATH.
Ответ написан
@Bobson8
Системный администратор
Можно добавить модуль с js в системную переменную среду. Тогда должно работать без лишних путей и ошибок.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы