Как с помощью 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 и это бы нормально выполнилось.
Emptyform: Как и обычно. Сначала рядом со скриптом myscript.js, потом по иерархии выше. https://nodejs.org/docs/v0.4.1/api/modules.html Можете попробовать использовать переменную окружения NODE_PATH: set "NODE_PATH=%cd%" в бат-файле. Не уверен, что сработает как нужно, но попробуйте.
1. скрипт лежит рядом с файликом для чтения? если да, то сделай cd c:\sys\ и запускай node myscript datafile.txt
2. нода ищет модули от текущего запуска самой ноды до корня диска. т.е. просто выходит из папки вверх и ищет папку модулей и так далее до корня диска.
Вячеслав Лебедев
1. скрипт лежит в c:\sys а файлик где угодно
2. методом тыка обнаружил что если указать node c:\sys\myscript.js даже находясь вне c:\sys\ , скажем в d:\somefolder\ , нода все равно модули ищет в c:\sys\ и выше. Возможно есть способ подсказать ей - ищи тут...
Emptyform: 2. вот это stackoverflow.com/questions/26293049/specify-path-...
я ошибку допустил, так верно: нода ищет модули от пути запуска СКРИПТА до корня диска. попробуй для эксперимента скрипт из d диска запустить :) перемести файлик на d и node d:\myscript.js