Comment exécutez-vous le script JavaScript via le terminal?

273

Par exemple, si vous deviez exécuter un script Python, vous taperiez python filename.py ou si vous vouliez exécuter un programme C, faites filename puis ./ filename . Comment faites-vous cela avec les fichiers .js ?

BLUC
la source
1
JS n'est pas un langage à usage général, alors pourquoi voudriez-vous faire cela? Incluez votre fichier .js dans une page .htm (l) via la balise <script>, puis ouvrez la page dans votre navigateur.
helpermethod
3
@BLUC Cela s'appelle un exécutable.
helpermethod
exécutable, application, programme ou binaire. Et sur une note plus utile, vous aurez besoin d'un interpréteur JavaScript, comme V8 ou Rhino, ou l'un des 1000 autres que j'oublie.
Corbin
9
@OliverWeiler ce n'est pas aussi facilement applicable dans des situations générales que certaines autres langues, mais je crois qu'il peut avoir ses applications en dehors des pages Web :).
Corbin
Une application de JavaScript est dans Unity 3D
Bradman175

Réponses:

124

Vous auriez besoin d'un moteur JavaScript (comme Rhino de Mozilla ) pour évaluer le script - exactement comme vous le faites pour Python, bien que ce dernier soit livré avec la distribution standard.

Si vous avez Rhino (ou une alternative) installé et sur votre chemin, alors exécuter JS peut être aussi simple que

> rhino filename.js

Il convient de noter cependant que bien que JavaScript soit simplement un langage à part entière, de nombreux scripts particuliers supposent qu'ils s'exécuteront dans un environnement de type navigateur - et essayez donc d'accéder à des variables globales telles que location.hrefet de créer une sortie en ajoutant Les objets DOM plutôt que d'appeler print.

Si vous avez mis la main sur un script qui a été écrit pour une page Web, vous devrez peut-être envelopper ou le modifier quelque peu pour lui permettre d'accepter les arguments de stdin et d'écrire sur stdout. (Je crois que Rhino a un mode pour émuler les variables globales du navigateur standard, ce qui aide beaucoup, bien que je ne trouve pas les documents pour cela maintenant.)

Andrzej Doyle
la source
4
Pour info, différence entre rhinocéros et spidermonkey (les deux sont des créations de Mozilla): stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Kelvin
3
Sur Debian / Ubuntu: «apt-get install rhino» et binaire s'appelle js.
pevik
Je ne sais pas si vous ressentez la même chose, mais je trouve le rhyno assez fragile et buggy ... (sous Ubuntu 14.04)
Ionică Bizău
1
Cela fonctionne pour moi, utilisez print ("msg") pour le débogage que l'utilisation de console.log ()
Arefe
392

Une autre réponse serait le NodeJS!

Node.js est une plate-forme construite sur le moteur d'exécution JavaScript de Chrome pour créer facilement des applications réseau rapides et évolutives. Node.js utilise un modèle d'E / S non bloquant piloté par les événements qui le rend léger et efficace, parfait pour les applications en temps réel gourmandes en données qui s'exécutent sur des appareils distribués.

En utilisant le terminal, vous pourrez le démarrer en utilisant la nodecommande.

$ node
> 2 + 4
6
> 

Remarque : si vous souhaitez quitter, tapez simplement

.exit

Vous pouvez également exécuter un fichier JavaScript comme celui-ci:

node file.js

«Installez-le MAINTENANT»

Ionică Bizău
la source
@NadirSampaoli Oui, c'est une nouvelle technologie qui est vraiment géniale!
Ionică Bizău
Le seul inconvénient (si vous voulez l'appeler ainsi) est que le nœud est toujours en "mode strict". Est-ce correct?
Nadir Sampaoli
@NadirSampaoli Hmmm, je ne suis pas sûr. Voir cette question: stackoverflow.com/q/9031888/1420197
Ionică Bizău
11
@NadirSampaoli Je doute que cela compte comme un "inconvénient". Le mode strict est meilleur pour tout le monde.
The Paramagnetic Croissant
Un conseil sur l'encapsulation d'un javascript dans la commande finale «consommateur», l'utilisateur n'a pas à s'en soucier? Comme dans $> sudo apt-get install myFancyCmdsuivi de $>myFancyCmd hello.jpg -w 1234?
Frank Nocke
134

Si vous avez un Mac, vous pouvez obtenir jscune console javascript sous OS X (Terminal) en tapant

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

dans Terminal.app .

Vous pouvez également exécuter l'un de vos scripts .js en ajoutant son nom comme argument pour jsc, comme ceci:

jsc your_awesome_script_name.js

Remarque : j'utilise console.log()pendant le développement mais jsc a plutôt besoin de la debug()fonction.

Sur Ubuntu, vous avez de jolis shells ECMAScript à votre disposition. Entre eux, il convient de mentionner SpiderMonkey . Vous pouvez l'ajouter ensudo apt-get install spidermonkey

Sur Windows, comme d'autres l'ont dit, vous pouvez compter sur le système d'exploitation cscriptet wscriptdirectement sur celui-ci.

J'ajouterais aussi une autre :) façon de penser au problème , si vous avez le temps et que vous souhaitez apprendre de nouvelles choses, je voudrais mentionner le script de café qui a son propre compilateur / console et vous donne un Javascript super correct. Vous pouvez également l'essayer sur votre navigateur (lien "essayer coffeescript").

microspino
la source
Ubuntu ne prend pas en charge SpiderMonkey depuis le 10.04. (Savez-vous pourquoi? Askubuntu.com/q/180572/482285 )
maciek
1
@maciek SpiderMonkey est toujours disponible pour Ubuntu mais sous un autre nom: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino
1
@maciek ... pour que vous puissiez faire: sudo apt-get install libmozjs-24-binet l'utilisation sudo ln -sf /usr/bin/js24 /usr/bin/jsde l'utiliser avec js dans votre shell.
microspino
Soit dit en passant console.logfonctionne très bien avec le nœud , installé sur Ubuntu avec sudo apt install nodejs. Parfait pour une console.log('hey world, here I am')sorte d'application, avec laquelle vous pouvez exécuter node hey.js.
Nagev
30

Utilisez node.js pour cela, voici un exemple d'installation nodeen utilisant brewsur mac:

brew update && install node

Ensuite, exécutez votre programme en tapant node filename.jset vous pouvez utiliser console.log()pour la sortie.

Andrey Bodoev
la source
Cela va très bien en combinaison avec github.com/remy/nodemon qui surveillera tout fichier javascript et le réexécutera à tout changement. Il suffit donc de l'exécuter avec nodemon yourjavascript.js
Denis
4
Tu ne veux pas dire brew install node? install nodeà lui seul ne fera vraiment rien.
numbermaniac
11

C'est grossier, mais vous pouvez ouvrir la console Javascript dans Chrome (Ctrl + Maj + J) et coller le contenu textuel du fichier * .js et appuyer sur Entrée.

Mark Lakata
la source
4
En fait, ce n'est pas si brut, et j'ai été étonné que personne n'en ait parlé console.
Eduard Florinescu
11

Si vous utilisez un MacBook.

  1. Installez-vous node.jsdans votre système et ouvrez le terminal
  2. Accédez au répertoire dans lequel le fichier js est enregistré.
  3. Pour exécuter run node <filename.js>

exemple, si le nom de fichier est script.jsexécuténode script.js

Emjey
la source
1
le noeud est proche de javascript mais ce n'est pas exactement javascript, par exemple, javascript ne supporte pas le fichier IO, il y a par défaut une fonction requise; ce n'est peut-être pas un bon moyen de tester le fichier javascript
Weijing Jay Lin
5

Alternativement, si vous cherchez simplement à jouer avec Javascript, une option intéressante dans le navigateur est le laboratoire Javascript de Codecademy .

Ils ont également un IDE Python et Ruby.

fscof
la source
4

Si vous êtes sur un PC Windows, vous pouvez utiliser WScript.exe ou CScript.exe

Gardez juste à l'esprit que vous n'êtes pas dans un environnement de navigateur, donc les choses comme document.writeou tout ce qui repose sur l' windowobjet ne fonctionneront pas, comme window.alert. Au lieu de cela, vous pouvez appeler des éléments WScript.Echode sortie à l'invite.

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

Anders Tornblad
la source
Y en a-t-il un pour Ubuntu, Google Chrome?
BLUC
Vous auriez dû mettre cette information vitale dans la question. Désolé, je suis un connaisseur de Windows - je ne sais pas grand-chose sur Ubuntu. En outre, vous n'aurez probablement pas accès à Google Chrome lors de l'exécution de javascript à partir d'une invite du shell Ubuntu. EDIT: La réponse d'Andrzej Doyle est la voie à suivre pour vous.
Anders Tornblad
4

J'ai essayé de faire des recherches là-dessus aussi mais j'ai fini par utiliser jsconsole.com par Remy Sharp (il a également créé jsbin.com). Je cours sur Ubuntu 12.10, j'ai donc dû créer une icône spéciale, mais si vous êtes sous Windows et utilisez Chrome, allez simplement dans Outils> Créer des raccourcis d'application (notez que cela ne fonctionne pas très bien, ou pas du tout dans mon cas, sur Ubuntu). Ce site fonctionne très comme la jscconsole Mac : en fait, il a aussi des fonctionnalités intéressantes (comme le chargement de bibliothèques / code à partir d'une URL) que je suppose jscque non.

J'espère que cela t'aides.

raf
la source
3

Sur Ubuntu, installez libjavascriptcoregtk-3.0-bin et utilisez ( manpage ).un lien pour installer /usr/bin/jsc

Keith Cascio
la source
Simple pour Ubuntu 14: sudo apt-get install nodejs; /usr/bin/nodejs foo.js. Notez que c'est la v0.10.25, un peu ancienne.
Camille Goudeseune
2

Toutes les réponses ci - dessus sont grands, je vois une chose qui manque et pourrait être considéré pour l' exécution de javascripts(*.js)fichiers, le sans rapport avec le frère de javascriptla Java.

JDKarrive avec deux beaux outils, pourrait être utilisé pour l'exécution javascripts. Voici la commande va comme. Assurez-vous de naviguer vers JDK\bin.

 jjs example.js

Son vient avec un autre commmandoutil qui va comme ça-

 jrunscript example.js

J'espère que cela pourra être utile aux autres.

Garçon rouge
la source
1

Ceci est une solution "détournée" mais vous pouvez utiliser ipython

Démarrez le bloc-notes ipython à partir du terminal:

$ ipython notebook

Il s'ouvrira dans un navigateur où vous pourrez exécuter le javascript

entrez la description de l'image ici

AlexG
la source
0

Vous pouvez également utiliser phantomjsTélécharger phantomjs en fonction du système (mon cas est Max OSX) à partir de phantomjs.org. Vous devez mettre le chemin d'accès au dossier d'installation de phantomjs en haut de votre fichier javascript. par exemple. #!./bin/phantomjsSauvegardez votre code. Accédez au terminal où votre javascript est enregistré et vous pouvez exécuter en utilisant> phantomjs filename.js

ewalel
la source
0

Techniquement, Node.js n'est pas un JavaScript correct tel que nous le connaissons, car il n'y a pas de modèle d'objet de document (DOM) . Par exemple, les scripts JavaScript qui s'exécutent dans le navigateur ne fonctionneront pas. Du tout. La solution serait d'exécuter JavaScript avec un navigateur sans tête. Heureusement, un projet est toujours actif: Mozilla Firefox a un mode sans tête .

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.
parfumé
la source
0

Tout ce que vous avez à faire pour exécuter un fichier js via bash est le type: $ node filename.js

C'est similaire à en python, quand vous faites: $ python filename.py

stevestar888
la source