Как запустить скрипт JavaScript через Терминал?


273

Например, если вы должны запустить скрипт Python, вы наберете python filename.py или если вы хотите запустить программу на C, создайте filename, затем ./ filename . Как вы делаете это с файлами .js ?


1
JS не является языком общего назначения, так зачем вам это делать? Включите ваш файл .js в страницу .htm (l) с помощью тега <script>, затем откройте страницу в своем браузере.
helpermethod

3
@ BLUC Это называется исполняемый файл.
helpermethod

исполняемый файл, приложение, программа или двоичный файл. И на более полезном замечании вам понадобится интерпретатор JavaScript, например V8 или Rhino, или один из 1000 других, которые я забыл.
Корбин

9
@OliverWeiler он не так легко применим в общих ситуациях, как некоторые другие языки, но я верю, что его приложения могут быть вне веб-страниц :).
Корбин

Приложение JavaScript находится в Unity 3D
Bradman175

Ответы:


124

Вам понадобится JavaScript-движок (такой как Mozilla's Rhino ), чтобы оценить скрипт - точно так же, как вы делаете для Python, хотя последний поставляется со стандартным дистрибутивом.

Если на вашем пути установлен Rhino (или альтернативный вариант), запуск JS действительно может быть таким простым, как:

> rhino filename.js

Однако стоит отметить, что, хотя JavaScript является просто отдельным языком, многие конкретные сценарии предполагают, что они будут выполняться в среде, подобной браузеру, - и поэтому пытаются получить доступ к глобальным переменным, таким как location.href, и создавать выходные данные, добавляя DOM объекты, а не вызовы print.

Если у вас есть скрипт, который был написан для веб-страницы, вам может понадобиться обернуть или изменить его, чтобы он мог принимать аргументы от stdin и записывать в stdout. (Я считаю, что Rhino имеет режим для эмуляции стандартных глобальных переменных браузера, который очень помогает, хотя сейчас я не могу найти документы для этого.)


4
К вашему сведению, разница между носорогом и спайдермонки (оба являются творениями Mozilla): stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Кельвин,

3
В Debian / Ubuntu: «apt-get install rhino», а бинарный файл называется js.
pevik

Я не знаю, чувствуете ли вы то же самое, но я нахожу rhyno довольно хрупким и глючным ... (работает Ubuntu 14.04)
Ionică Bizau

1
Для меня это работа, используйте print ("msg") для отладки, чем console.log ()
Arefe

392

Другим ответом будет NodeJS!

Node.js - это платформа, основанная на среде выполнения Chrome JavaScript, для простого создания быстрых, масштабируемых сетевых приложений. Node.js использует управляемую событиями неблокирующую модель ввода-вывода, которая делает ее легкой и эффективной, идеально подходящей для приложений с интенсивным использованием данных в реальном времени, работающих на распределенных устройствах.

Используя терминал, вы сможете запустить его с помощью nodeкоманды.

$ node
> 2 + 4
6
> 

Примечание : если вы хотите выйти, просто введите

.exit

Вы также можете запустить файл JavaScript следующим образом:

node file.js

«Установите сейчас»


@NadirSampaoli Да, это новая технология, которая действительно великолепна!
Ионика Бизэу

Единственным недостатком (если вы хотите так его назвать) является то, что узел всегда находится в «строгом режиме». Это правильно?
Надир Сампаоли

@NadirSampaoli Хммм, я не уверен. Посмотрите этот вопрос: stackoverflow.com/q/9031888/1420197
Ionică Bizau

11
@ NadirSampaoli Я сомневаюсь, что это считается "недостатком". Строгий режим лучше для всех.
Парамагнитный круассан

Какой-нибудь совет по добавлению javascript в окончательную команду «потребителя», пользователю не нужно заботиться? Как в $> sudo apt-get install myFancyCmdпоследующем $>myFancyCmd hello.jpg -w 1234?
Фрэнк Нок

134

Если у вас Mac, вы можете получить jscконсоль javascript в OS X (Terminal), набрав

/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Resources/jsc

в Terminal.app .

Вы также можете запустить один из ваших скриптов .js, добавив его имя в качестве аргумента для jsc, например так:

jsc your_awesome_script_name.js

Обратите внимание : я использую console.log()во время разработки, но JSC нуждается вdebug() функции вместо этого.

В Ubuntu у вас есть несколько хороших оболочек ECMAScript . Между ними стоит упомянуть SpiderMonkey . Вы можете добавить егоsudo apt-get install spidermonkey

На Windows, как говорили другие люди, вы можете положиться cscriptи wscriptнапрямую опираться на ОС.

Я бы добавил еще один способ мышления :) к этой проблеме , если у вас есть время и вы хотите изучать новые вещи, я бы хотел упомянуть кофе-скрипт, который имеет свой собственный компилятор / консоль и дает вам супер-корректный Javascript. Вы можете попробовать это также в своем браузере (ссылка "попробуйте coffeescript").


Ubuntu не поддерживает SpiderMonkey с 10.04. (Знаете ли вы, почему? Askubuntu.com/q/180572/482285 )
maciek

1
@maciek SpiderMonkey по-прежнему доступен для Ubuntu, но под другим именем: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino

1
@maciek ... так что вы можете сделать: sudo apt-get install libmozjs-24-binи использовать sudo ln -sf /usr/bin/js24 /usr/bin/jsего с js в вашей оболочке.
микроспино

Кстати console.logотлично работает с узлом , установленным на Ubuntu с sudo apt install nodejs. Идеально подходит для своего console.log('hey world, here I am')рода приложения, с которым вы можете работать node hey.js.
Нагев

30

Для этого используйте node.js, вот пример, как установить nodeего brewна Mac:

brew update && install node

Затем запустите вашу программу, набрав node filename.js, и вы можете использовать console.log()для вывода.


Это прекрасно сочетается с github.com/remy/nodemon, который будет смотреть любой файл javascript и перезапускать его при любых изменениях. Так что просто запустите его с помощью nodemon yourjavascript.js
Денис

4
Ты имеешь в виду brew install node? install nodeсам по себе ничего не сделает.
Numbermaniac

11

Это грубо, но вы можете открыть консоль Javascript в Chrome (Ctrl + Shift + J), вставить текстовое содержимое файла * .js и нажать Enter.


4
На самом деле это не так грубо, и я был поражен, что никто не говорил о console.
Эдуард Флоринеску

11

Если вы используете MacBook.

  1. Настройте node.jsв своей системе и откройте терминал
  2. Перейдите в каталог, где сохранен файл js.
  3. Выполнить бег node <filename.js>

пример, если имя файла script.jsзапущеноnode script.js


1
узел близок к javascript, но это не совсем javascript, например, javascript не поддерживает файловый ввод-вывод, по умолчанию также есть функция require; это может быть не очень хороший способ проверить файл javascript
Weijing Jay Lin

5

В качестве альтернативы, если вы просто хотите поиграться с Javascript, хорошим вариантом в браузере является Javascript Lab Codecademy .

У них также есть Python и Ruby IDE.


4

Если вы работаете на ПК с Windows, вы можете использовать WScript.exe или CScript.exe

Просто имейте в виду, что вы не находитесь в среде браузера, поэтому такие вещи, как document.writeили что-либо, что зависит от windowобъекта, не будут работать, как window.alert. Вместо этого вы можете вызывать WScript.Echoвывод данных в подсказку.

http://msdn.microsoft.com/en-us/library/9bbdkx3k(VS.85).aspx


Есть ли один для Ubuntu, Google Chrome?
BLUC

Вы должны были поместить эту важную информацию в вопрос. Извините, я фанат Windows - я мало что знаю об Ubuntu. Кроме того, у вас, вероятно, не будет доступа к Google Chrome при запуске javascript из командной строки Ubuntu. РЕДАКТИРОВАТЬ: Анджей Дойл ответ путь для вас.
Андерс Торнблад

4

Я тоже попытался исследовать это, но вместо этого использовал Реми Шарпа jsconsole.com (он также создал jsbin.com). Я работаю на Ubuntu 12.10, поэтому мне пришлось создать специальный значок, но если вы работаете в Windows и используете Chrome, просто перейдите в «Инструменты»> «Создать ярлыки приложений» (обратите внимание, что это не очень хорошо работает или вообще не работает в моем случае, на Ubuntu). Этот сайт работает очень похоже на jscконсоль Mac : на самом деле у него тоже есть несколько интересных функций (например, загрузка библиотек / кода из URL), которые, как мне кажется jsc, нет.

Надеюсь это поможет.



2

Все ответы выше велики, я вижу одно недостающее и может быть рассмотрен для запуска javascripts(*.js)файлов, в неродственный брате .javascriptJava

JDKприходит с двумя хорошими инструментами, которые могут быть использованы для выполнения javascripts. Вот команда идет как. Обязательно перейдите к JDK\bin.

 jjs example.js

Его предлагает другой commmandинструмент, который выглядит следующим образом:

 jrunscript example.js

Я надеюсь, что это может быть полезно для других.


1

Это обходное решение, но вы можете использовать ipython

Запустите ноутбук ipython из терминала:

$ ipython notebook

Он откроется в браузере, где вы можете запустить JavaScript

введите описание изображения здесь


0

Вы также можете использовать phantomjsСкачать phantomjs в зависимости от системы (в моем случае это Max OSX) с phantomjs.org. Вы должны указать путь к папке установки phantomjs в верхней части вашего файла javascript. например. #!./bin/phantomjsСохраните свой код. Перейдите в терминал, где сохранен ваш JavaScript, и вы можете запустить, используя> phantomjs filename.js


0

Технически, Node.js не является надлежащим JavaScript, как мы его знаем, так как здесь нет объектной модели документа (DOM) . Например, JavaScript-скрипты, которые запускаются в браузере, не будут работать. Вообще. Решением было бы запустить JavaScript с безголовым браузером. К счастью, проект все еще активен: Mozilla Firefox имеет режим без головы .

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode

$ /Applications/Firefox.app/Contents/MacOS/firefox -headless index.html
*** You are running in headless mode.

0

Все, что вам нужно сделать для запуска js-файла через bash, это набрать: $ node filename.js

Это похоже на Python, когда вы делаете: $ python filename.py

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.