По умолчанию Windows связывает .js
файлы с Windows Script Host , автономным механизмом выполнения JS от Microsoft.Если вы введете script.js в командной строке (или дважды щелкните файл .js
в Проводнике), сценарий будет выполнен с помощью wscript.exe
.
Это может быть решить локальную проблему с глобальным параметром , но вы можете связать .js
файлы с node.exe
, чтобы набрать script.js в командной строке илидвойной щелчок / перетаскивание элементов в сценарии запускает их с Node.
Конечно, если - как я - вы связали .js
файлов с редактором, так что двойной щелчок по ним открывает ваш любимый текстредактор, это предложение не принесет много пользы.Вы также можете добавить в меню .js
правой кнопкой мыши пункт меню «Выполнить с узлом», хотя эта альтернатива не решает ваши потребности командной строки.
Возможно, самое простое решение - просто использовать командный файл - вам не нужно иметь копию Node в папке, в которой находится ваш скрипт. Просто обращайтесь к исполняемому файлу Node абсолютно:
"C:\Program Files (x86)\nodejs\node.exe" app.js %*
Другой альтернативой является это очень простое приложение на C #, которое запускает Node, используя собственное имя файла + .js
в качестве сценария для запуска, и передает любые аргументы командной строки.
class Program
{
static void Main(string[] args)
{
var info = System.Diagnostics.Process.GetCurrentProcess();
var proc = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files (x86)\nodejs\node.exe", "\"" + info.ProcessName + ".js\" " + String.Join(" ", args));
proc.UseShellExecute = false;
System.Diagnostics.Process.Start(proc);
}
}
Так что если вы назовете получившийся EXE"app.exe", вы можете набрать app arg1 ...
и Node будет запущен из командной строки "app.js" arg1 ...
.Обратите внимание, что приложение начальной загрузки C # немедленно выйдет, оставив Node ответственным за окно консоли.
Поскольку это, вероятно, представляет довольно большой интерес, я сделал это доступным на GitHub , включая скомпилированный exe , если вам нужен фургон с незнакомцами.