Javascript для утилит командной строки - PullRequest
6 голосов
/ 13 мая 2009

Учитывая необходимость написания утилит командной строки для выполнения общих задач, таких как выгрузка файлов на удаленный FTP-сайт, загрузка данных из удаленной базы данных MySQL и т. Д.

Практично ли использовать JavaScript для такого рода вещей? Я знаю, что есть интерпретаторы JavaScript, которые можно запускать из командной строки, но есть ли библиотеки для таких вещей, как FTP и доступ к базе данных, как, например, для Джава? Если так, то какое место лучше всего искать? (Поиски Google с ключевыми словами в JavaScript всегда возвращают множество страниц, относящихся к конкретным браузерам.)

И есть ли способ упаковать программу JavaScript как отдельный исполняемый файл в Windows?

Обновление: я решил, что Python - лучший инструмент для такой работы, но ответы на первоначальный вопрос все еще хороши.

Ответы [ 6 ]

8 голосов
/ 13 мая 2009

Автономный исполняемый файл?

Кстати, когда вы задаете вопрос, я не уверен, что вы знаете, но Windows Script Host, включенный в Windows, позволяет запускать файлы .js из командной строки. Ваш javascript не будет исполняемым, он останется скриптом, текстовым файлом. Сценарий выполняется в cscript.exe, который предоставляется WSH. Там нет компиляции не требуется. Может быть, вы знали все это.

Я использую Javascript для различных утилит в Windows.

Я думаю, что ваш инстинкт прав в наличии библиотек. Вы вроде по своему усмотрению , чтобы найти все эти вещи. Хотя, как только вы их найдете, нетрудно упаковать библиотеки Javascript как компоненты COM и разрешить их повторное использование из любого места. См. Здесь пример упаковки библиотеки Google Diff / Patch / Match Javascript в COM.

Приложение : Как только в COM появится немного кода, он может быть использован любым Javascript, запущенным на компьютере. Некоторые примеры объектов COM, доступных для сценариев JavaScript, работающих в WSH:

  • MSXML2.XMLHTTP объект - используется в AJAX, но может использоваться для любых HTTP-коммуникаций. Там также есть объект для механизма XSLT, чтобы вы могли выполнять преобразования из скрипта.
  • Excel.Application - позволяет открывать электронные таблицы Excel и автоматизировать их из Javascript.
  • Communicator.UIAutomation - автоматизировать MS Communicator (отправлять мгновенные сообщения через скрипт)
  • COM-объекты для Google Earth .
  • SlowAES - полная реализация JES-шифрования AES-шифрования.
7 голосов
/ 13 мая 2009

Вы можете использовать Rhino для компиляции Javascript в байт-код Java и получения доступа ко всем библиотекам Java.

Или вы можете использовать JScript.net и получить доступ к библиотекам .net. .net включает в себя jsc.exe, который создает exe-файлы.

Для того, чтобы они работали, требуется, чтобы для установки была установлена ​​соответствующая структура.

6 голосов
/ 03 мая 2012

Node.js - безусловно, лучшая среда для работы без браузера JS. Я использовал Rhino и SpiderMonkey, и во всем есть огромная разница от основ, таких как обработка ошибок до размера сообщества с помощью инструмента. Узел предназначен для "серверной" JS - создания серверных приложений в JS. Это здорово для этого. Но он одинаково хорошо работает и для создания инструментов командной строки.

Менеджер пакетов NPM (в комплекте с Node) предоставляет хороший глобальный каталог для поиска и установки пакетов. Он работает намного лучше, чем другие языковые эквиваленты, такие как PECL / Pear / CPAN / и т. Д. Несколько высококачественных инструментов, таких как JSHint , Jade язык шаблонов и CoffeeScript все компиляторы уже доступны через NPM / Node:

npm install -g jshint, coffee-script, jade
jshint my_code.js
jade < my.jade > my.html

Для разбора аргументов существуют пакеты типа commander.js . В настоящее время я использую сильно расширенную версию Commander в своем инструменте командной строки underscore-cli .

Для работы с JSON или для работы с JS из командной строки (аналогично "perl -pe"), посмотрите underscore-cli - Это действительно мощный инструмент для обработки данных JSON, обработки шаблонов подчеркивания и запуск выражений JS из командной строки. Я использую его для 1001 разных вещей, которые в противном случае было бы действительно раздражающим.

4 голосов
/ 13 мая 2009

Rhino поставляется с JDK 1.6, jrunscript.exe в каталоге bin позволит вам запустить любой Javascript, который вы захотите. Поскольку он работает под Java, вы получаете доступ ко всем имеющимся у вас библиотекам Java.

Мы широко используем его из командной строки. Это очень хорошо.

1 голос
/ 04 февраля 2011

jslibs - это хорошая автономная среда выполнения JavaScript, которая поддерживает многие сторонние библиотеки с открытым исходным кодом, такие как zlib, SQLite, NSPR, libiconv, libTomCrypt, OpenGL, ...

1 голос
/ 13 мая 2009

Один из способов - написать эти утилиты как приложения AIR - они могут быть написаны на JavaScript и не должны иметь пользовательского интерфейса. Они имеют доступ к командной строке, и существуют существующие библиотеки ActionScript 3, которые могут обрабатывать FTP и т. Д. Эти API-интерфейсы ActionScript можно вызывать из JS в приложениях AIR. Приложения AIR также имеют доступ к базе данных sqlite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...