Як запускати сценарій JavaScript через термінал?


272

Наприклад, якщо ви повинні були запустити Python скрипт , який ви повинні ввести пітон filename.py або якщо ви хочете запустити програму C грим імені файлу , тим ./ імені файлу . Як це зробити з файлами .js ?


1
JS - це не загальна мова, то чому б ви хотіли це робити? Додайте файл .js до сторінки .htm (l) через тег <script>, після чого відкрийте сторінку у своєму браузері.
helpermethod

3
@BLUC Це називається виконуваним файлом.
helpermethod

виконуваний файл, програма, програма чи двійкові файли. І на корисніші відомості вам знадобиться інтерпретатор JavaScript, як V8 або Rhino, або один з інших 1000 тих, кого я забуваю.
Корбін

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

Додаток JavaScript знаходиться в Unity 3D
Bradman175

Відповіді:


123

Вам знадобиться механізм JavaScript (наприклад , Rhino Mozilla ), щоб оцінити сценарій - точно так само, як і для Python, хоча останній постачається зі стандартним розповсюдженням.

Якщо на вашому шляху встановлений Rhino (або альтернативний варіант), то запуск JS дійсно може бути таким же простим, як

> rhino filename.js

Варто зазначити, що, хоча JavaScript - це просто сама по собі мова, багато конкретних сценаріїв передбачають, що вони будуть виконуватись у середовищі, схожому на браузер - і тому намагаються отримати доступ до глобальних змінних, таких як location.href, і створити вихід шляхом додавання DOM об'єкти, а не дзвінки print.

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


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

3
У Debian / Ubuntu: 'apt-get install rhino', а двійковий називається js.
pevik

Я не знаю, чи відчуваєте ви те саме, але я вважаю, що рино є досить тендітним і глючним ... (працює на Ubuntu 14.04)
Ionică Bizău

1
Ця робота для мене, використовуйте print ("msg") для налагодження, ніж використання console.log ()
Arefe

391

Іншою відповіддю буде NodeJS!

Node.js - це платформа, побудована на JavaScript під час виконання JavaScript для швидкого створення швидких та масштабованих мережевих додатків. Node.js використовує подію, що не блокує модель вводу / виводу, що робить її легкою та ефективною, ідеальною для використання в реальному часі додатків, що працюють в реальному часі, що працюють на розподілених пристроях.

Використовуючи термінал, ви зможете запустити його за допомогою nodeкоманди.

$ node
> 2 + 4
6
> 

Примітка . Якщо ви хочете вийти просто введіть

.exit

Ви також можете запустити файл JavaScript таким чином:

node file.js

«Встановити зараз»


@NadirSampaoli Так, це нова технологія, яка справді чудова!
Ionică Bizău

Єдиний недолік (якщо ви хочете це назвати) - це те, що вузол завжди знаходиться в "суворому режимі". Це правильно?
Надір Сампаоолі

@NadirSampaoli Хм, я не впевнений. Дивіться це питання: stackoverflow.com/q/9031888/1420197
Ionică Bizau

10
@NadirSampaoli я сумніваюся, що це вважається "зворотним боком". Суворий режим краще для всіх.
Парамагнітний круасан

Будь-які поради щодо введення javascript у остаточну команду "споживач", користувачеві не потрібно піклуватися про це? Як у $> sudo apt-get install myFancyCmdподальшому $>myFancyCmd hello.jpg -w 1234?
Френк Нокк

133

Якщо у вас 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за допомогою brewmac:

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 не підтримує IO файлу, також потрібна функція за замовчуванням; це може бути не гарним способом перевірити файл JavaScript
Weijing Jay Lin

5

Крім того, якщо ви просто хочете пограти з Javascript, хорошим варіантом браузера є лабораторія JavaScript JavaScript Codecademy .

Вони також мають ID Python та Ruby.


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. EDIT: Відповідь Анджея Дойля - це шлях до вас.
Андерс Торнблад

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.