Выполнение JavaScript без браузера?

Я изучаю Javascript-программирование без браузера. Я хочу запускать скрипты из командной строки Linux или Mac OS X, так же, как мы запускаем любой другой язык сценариев (ruby, php, perl, python...)

$ javascript my_javascript_code.js

Я заглянул в пауковую обезьяну (Mozilla) и v8 (Google), но оба они, кажется, встроены.

Кто-нибудь использует Javascript в качестве языка сценариев для выполнения из командной строки?

Если кому-то любопытно, почему я изучаю это, я воткнулся node.js. Производительность node.js заставляет меня задаться вопросом, может ли javascript быть жизнеспособным скриптовым языком для обработки больших данных.

4b9b3361

Я нашел этот вопрос по этой теме, но если вам нужны прямые ссылки, вот они:

  • Вы можете установить Rhino, как указали другие. Этот пост показывает простой способ его запуска и запуска и как псевдоним команды, чтобы вызвать его легко
  • Если вы работаете на Mac, вы можете использовать JavaScriptCore, который вызывает механизм JavaScript WebKit. Здесь сообщение на нем
  • Вы также можете использовать интерпретатор Chome/Google V8. Вот инструкции
  • JavaScript как OSA интересен тем, что позволяет (AFAIK) взаимодействовать с приложениями для сценариев OS X, как если бы вы были в AppleScript (без страшного синтаксиса)

Я удивлен, что node.js не поставляется с оболочкой, но я думаю, что это больше похоже на веб-сервер с обратным вызовом/событием на основе epoll/selector, поэтому, возможно, ему не нужен полный JS но я не слишком хорошо знаком с его внутренней работой.

Поскольку вы, похоже, заинтересованы в node.js, и поскольку он основан на V8, лучше всего следовать этим инструкциям по настройке среды V8, чтобы вы могли иметь последовательную основу для вашего программирования JavaScript (я должен надеяться АО и V8 в основном одни и те же, но я не уверен).

42
ответ дан 31 мая '10 в 8:12
источник

Основной ответ

Да, чтобы ответить на ваш вопрос, можно использовать JavaScript как "обычный" язык сценариев из командной строки без браузера. Поскольку другие еще не упомянули об этом, я вижу, что стоит упомянуть:

В системах на базе Debian (и это включает Ubuntu, Linux Mint и aptosid/sidux, по крайней мере), помимо опций установки Rhino и других, уже упомянутых, у вас есть другие возможности:

  • Установите пакет libmozjs-24-bin, который предоставит вам механизм Mozilla Spidermonkey в командной строке как простой js24, который может использоваться также как интерактивный интерпретатор. (24 в названии означает, что он соответствует версии 24 Firefox).

  • Установите пакет libv8-dev, который предоставит вам движок Google V8. В качестве одного из своих примеров он имеет файл /usr/share/doc/libv8-dev/examples/shell.cc.gz, который вы можете распаковать и скомпилировать очень просто (например, g++ -Os shell.cc -o shell -lv8).

  • Установите пакет nodejs и он будет доступен как исполняемый nodejs, так и как alternative (в смысле Debian), чтобы предоставить исполняемый файл js. Компиляция JIT предоставляется как вежливость V8.

  • Установите пакет libjavascriptcoregtk-3.0-bin и используйте интерпретатор WebKit JavaScriptCore (jsc) в качестве обычного интерпретатора из командной строки, И это без необходимости иметь доступ к Mac. На многих платформах (например, x86 и x86_64) этот интерпретатор будет поставляться с компилятором JIT.

Итак, почти без компиляции у вас будет три тяжелых двигателя JavaScript в вашем распоряжении.

Добавление

После того, как все установлено, вы можете просто создавать файлы с помощью строки #!/usr/bin/js shebang, и все будет работать:

$ cat foo.js 
#!/usr/bin/js

console.log("Hello, world!");
$ ls -lAF /usr/bin/js /etc/alternatives/js /usr/bin/nodejs
lrwxrwxrwx 1 root root      15 Jul 16 04:26 /etc/alternatives/js -> /usr/bin/nodejs*
lrwxrwxrwx 1 root root      20 Jul 16 04:26 /usr/bin/js -> /etc/alternatives/js*
-rwxr-xr-x 1 root root 1422004 Apr 28 20:31 /usr/bin/nodejs*
$ chmod a+x foo.js 
$ ./foo.js 
Hello, world!
$ js ./foo.js
Hello, world!
$
51
ответ дан 12 февр. '12 в 4:00
источник

Я знаю, что вы спрашивали о Linux и Mac; Я собираюсь предоставить ответ для Windows, если другие люди, интересующиеся Windows, найдут ваш вопрос.

Windows включает механизм Javascript, который можно использовать из командной строки.

Все версии Windows, начиная с Windows 98, включили что-то, называемое Windows Script Host ". Это стандартный для Windows способ поддержки Script" движков". Начиная с первого выпуска, WSH поддерживает JScript, версию Javascript для Microsoft. Помимо прочего, это означает, что из командной строки Windows вы можете просто вызвать имя любого *.js файла, и оно будет запущено в JScript-движке. (через wscript.exe или cscript.exe)

Вы можете увидеть этот вопрос: Что такое ProgId или CLSID для движка Javascript для IE9 (под кодовым названием Chakra "), чтобы узнать, как вызывать более высокую скорость, производительность IE9 Javascript engine от cscript.exe.

10
ответ дан 15 сент. '11 в 19:24
источник

Так как никто не упоминал об этом: начиная с Java 1.6 Java JDK также поставляется с командной строкой JavaScript и REPL.

Он основан на Rhino: https://developer.mozilla.org/en/docs/Rhino

В Java 1.6 и 1.7 команда называется jrunscript (jrunscript.exe в Windows) и может быть найдена в папке bin JDK.

Начиная с Java 1.8 добавлена ​​новая реализация JavaScript (Nashorn: https://blogs.oracle.com/nashorn/)

Итак, в Java 1.8 команда называется jjs (jjs.exe в Windows)

7
ответ дан 24 авг. '13 в 1:02
источник

FWIW, node.js поставляется с оболочкой, попробуйте ввести:

node-repl

после установки node.js, чтобы увидеть его в действии. Это довольно стандартно, чтобы установить rlwrap, чтобы заставить его работать красиво.

6
ответ дан 31 мая '10 в 8:38
источник

Вы можете проверить Rhino.

В Rhino Shell предусмотрена возможность запуска сценариев JavaScript в пакетном режиме:

java org.mozilla.javascript.tools.shell.Main my_javascript_code.js [args]
3
ответ дан 31 мая '10 в 7:52
источник

Я нашел этот действительно отличный open source совместимый с ECMAScript JS Engine, полностью написанный на C под названием duktape

Duktape - это встраиваемый механизм Javascript с акцентом на переносимость и компактность.

Удачи!

2
ответ дан 11 февр. '15 в 18:02
источник

Я знаю, что это старо, но вы также должны попробовать Zombie.js. Безголовый браузер, который безумно быстро и идеально подходит для тестирования!

2
ответ дан 23 апр. '11 в 11:07
источник

Я использую Ubuntu 12.10 и js из командной строки

Он доступен с моей установкой java:

el@apollo:~/foo$ java -version
java version "1.6.0_27"
el@apollo:~/foo$ which js
/usr/bin/js

Некоторые примеры:

el@apollo:~/foo$ js
> 5
5

> console.log("hello");
hello
undefined

> var f = function(){ console.log("derp"); };
undefined
> f();
derp

> var mybool = new Boolean();
undefined
> mybool
{}
> mybool == true
false
> mybool == false
true

> var myobj = {};
undefined
> myobj.skipper = "on my mark, engage!"
'on my mark, engage!'
> myobj.skipper.split(" ");
[ 'on',
  'my',
  'mark,',
  'engage!' ]

Небо - это предел, затем продолжайте движение.

2
ответ дан 08 янв. '14 в 11:19
источник

Хорошо, JavaScript как OSA, расширение, которое предоставляет JavaScript в качестве альтернативы appleScript. Я использовал это около 10 лет назад, не знаю, продолжает ли он работать с текущими версиями ОС

1
ответ дан 31 мая '10 в 7:55
источник

JSDB, доступный для Linux, Windows и Mac, должен хорошо соответствовать счету. Он использует механизм Javascript Mozilla Spidermonkey и, кажется, меньше подходит для установки по сравнению с node.js(по крайней мере, в прошлый раз я пробовал node.js пару лет назад).

Я нашел JSDB из этого интересного списка оболочек Javascript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells

1
ответ дан 02 марта '15 в 22:17
источник