Emptyform
@Emptyform

Как с помощью Node запустить скрипт, расположенный НЕ в текущем каталоге?

Привет!

Написал простенький скрипт myscript.js, который обрабатывает файлы определенного формата, причем имя файла будет передаваться параметром в командной строке запуска.
Положил его в каталог, прописанный в PATH (винда) - типа C:\SYS

Теперь для натравливания этого скрипта на любой файл я пишу что-то вроде: node c:\sys\myscript.js datafile.txt

Я Ноде новичок, всех тонкостей не знаю еще и у меня два вопроса:
1. Как избавиться от необходимости указания c:\sys\ в имени скрипта? В какие-то переменные окружения прописать, в какие-то настройки ноды, что-то еще.....
2. При таком запуске Нода ищет папку \node_modules\ в c:\sys\ или выше. Как ей указать чтобы она искала ее в текущей папке или выше?

Т.е. в идеальном варианте я бы хотел, находясь в папке файла datafile.txt, набрать в ком. строке node myscript.js datafile.txt и это бы нормально выполнилось.
  • Вопрос задан
  • 740 просмотров
Пригласить эксперта
Ответы на вопрос 2
@r_zaycev
Положите в c:\sys батник myscript.bat c таким содержимым
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe" "%~dp0\myscript" %*
) ELSE (
  node "%~dp0\myscript" %*
)


Тогда сможете запускать из любого места (в консоли):
myscript datafile.txt

Если возникнет проблема с поиском файла datafile.txt (в самом скрипте), то используйте process.cwd()
Ответ написан
1. скрипт лежит рядом с файликом для чтения? если да, то сделай cd c:\sys\ и запускай node myscript datafile.txt
2. нода ищет модули от текущего запуска самой ноды до корня диска. т.е. просто выходит из папки вверх и ищет папку модулей и так далее до корня диска.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы