Como você executa o script JavaScript através do Terminal?

272

Por exemplo, se você fosse para executar um script Python você deve digitar python filename.py ou se você queria executar um programa C make filename então ./ filename . Como você faz isso com arquivos .js ?

BLUC
fonte
1
JS não é uma linguagem de uso geral, então por que você quer fazer isso? Inclua seu arquivo .js em uma página .htm (l) através da tag <script> e abra a página no seu navegador.
helpermethod
3
@BLUC É chamado de executável.
helpermethod
executável, aplicativo, programa ou binário. E, para uma observação mais útil, você precisará de um intérprete de JavaScript, como V8 ou Rhino, ou um dos outros 1000 que estou esquecendo.
Corbin
9
@OliverWeiler não é tão facilmente aplicável em situações gerais quanto em outros idiomas, mas acredito que ele possa ter aplicativos fora das páginas da web :).
Corbin
Uma aplicação de JavaScript está no Unity 3D
Bradman175 5/17/17

Respostas:

123

Você precisaria de um mecanismo JavaScript (como o Rhino da Mozilla ) para avaliar o script - exatamente como você faz para o Python, embora este último seja fornecido com a distribuição padrão.

Se você possui o Rhino (ou alternativo) instalado e no seu caminho, a execução do JS pode ser tão simples quanto

> rhino filename.js

No entanto, vale a pena notar que, embora o JavaScript seja simplesmente uma linguagem por si só, muitos scripts específicos assumem que eles serão executados em um ambiente semelhante ao navegador - e, portanto, tentam acessar variáveis ​​globais como location.hrefe criar saída anexando Objetos DOM em vez de chamar print.

Se você se apossou de um script que foi escrito para uma página da Web, pode ser necessário envolvê-lo ou modificá-lo um pouco para permitir que ele aceite argumentos do stdin e grave no stdout. (Acredito que o Rhino tenha um modo de emular os vars globais do navegador padrão, o que ajuda muito, embora não seja possível encontrar os documentos para isso agora.)

Andrzej Doyle
fonte
4
FYI, diferença entre rinoceronte e spidermonkey (ambos são criações Mozilla): stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Kelvin
3
No Debian / Ubuntu: 'apt-get install rhino' e o binário é chamado js.
pevik 29/08
Eu não sei se você sente a mesma coisa, mas eu estou achando rhyno muito frágil e de buggy ... (rodando Ubuntu 14.04)
Ionică Bizau
1
Esse trabalho para mim, o uso de impressão ( "msg") para a depuração do que usar console.log ()
Arefe
391

Outra resposta seria o NodeJS!

O Node.js é uma plataforma criada no tempo de execução JavaScript do Chrome para criar facilmente aplicativos de rede escaláveis ​​e rápidos. O Node.js usa um modelo de E / S sem bloqueio, orientado a eventos, que o torna leve e eficiente, perfeito para aplicativos em tempo real com uso intenso de dados que são executados em dispositivos distribuídos.

Usando o terminal, você poderá iniciá-lo usando o nodecomando

$ node
> 2 + 4
6
> 

Nota : Se você quiser sair, digite

.exit

Você também pode executar um arquivo JavaScript como este:

node file.js

«Instale agora»

Ionică Bizău
fonte
@NadirSampaoli Sim, é uma nova tecnologia que é realmente ótima!
Jonic Biză
A única desvantagem (se você quiser chamar assim) é que o nó está sempre no "modo estrito". Está correto?
Nadir Sampaoli
@NadirSampaoli Hmmm, não tenho certeza. Veja esta pergunta: stackoverflow.com/q/9031888/1420197
Ionică Bizău
10
@NadirSampaoli Duvido que isso conte como uma "desvantagem". O modo estrito é melhor para todos.
O Croissant Paramagnético
Algum conselho sobre como incluir um javascript no comando final 'consumidor', para o qual o usuário não precisa se preocupar? Como em $> sudo apt-get install myFancyCmdseguido por $>myFancyCmd hello.jpg -w 1234?
precisa
133

Se você possui um Mac, pode obter jscum console javascript no OS X (Terminal) digitando

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

no Terminal.app .

Você também pode executar um dos seus scripts .js adicionando seu nome como argumento para jsc, assim:

jsc your_awesome_script_name.js

Aviso : Eu uso console.log()durante o desenvolvimento, mas o jsc precisa da debug()função.

No Ubuntu, você tem algumas conchas ECMAScript à sua disposição. Entre eles, vale a pena mencionar o SpiderMonkey . Você pode adicioná-losudo apt-get install spidermonkey

No Windows, como outras pessoas disseram, você pode confiar cscripte wscriptcriar diretamente no sistema operacional.

Eu acrescentaria também outra maneira :) de pensar sobre o problema , se você tiver tempo e quiser aprender coisas novas, eu gostaria de mencionar o script de café que possui seu próprio compilador / console e fornece Javascript super-correto. Você pode experimentá-lo também no seu navegador (link "try coffeescript").

microspino
fonte
O Ubuntu não suporta SpiderMonkey desde 10.04. (Você sabe por que? Askubuntu.com/q/180572/482285 )
maciek
1
@maciek O SpiderMonkey ainda está disponível para o Ubuntu, mas com outro nome: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino
1
@maciek ... para que você possa fazer: sudo apt-get install libmozjs-24-bine o uso sudo ln -sf /usr/bin/js24 /usr/bin/jspara usá-lo com js no seu shell.
Microspino
By the way console.logfunciona bem com o , instalado no Ubuntu com sudo apt install nodejs. Perfeito para um console.log('hey world, here I am')tipo de aplicativo, com o qual você pode executar node hey.js.
Nagev 04/02
30

Use o node.js para isso, aqui está um exemplo de como instalar nodeusando brewno mac:

brew update && install node

Em seguida, execute seu programa digitando node filename.jse você poderá usá-lo console.log()para saída.

Andrey Bodoev
fonte
Isso combina muito bem com o github.com/remy/nodemon, que assiste a qualquer arquivo javascript e o executa novamente em qualquer alteração. Então, execute-o com nodemon yourjavascript.js
Denis
4
Você não quer dizer brew install node? install nodepor si só não fará nada de verdade.
numbermaniac
11

É grosseiro, mas você pode abrir o console Javascript no Chrome (Ctrl + Shift + J) e colar o conteúdo do texto do arquivo * .js e pressionar Enter.

Mark Lakata
fonte
4
Na verdade, não é tão rude, e fiquei impressionado com o que ninguém falou console.
Eduard Florinescu
11

Se você estiver usando o MacBook.

  1. Configure node.jsno seu sistema e abra o terminal
  2. Navegue para o diretório em que o arquivo js é salvo.
  3. Para executar, execute node <filename.js>

Por exemplo, se o nome do arquivo for script.jsexecutadonode script.js

Emjey
fonte
1
o nó está próximo ao javascript, mas não é exatamente javascript, por exemplo, o javascript não suporta E / S de arquivo, também há função de requisição; pode não ser uma boa maneira de testar o arquivo javascript
Weijing Jay Lin
5

Como alternativa, se você está apenas procurando brincar com o Javascript, uma boa opção no navegador é o Javascript Lab da Codecademy .

Eles também têm um IDE Python e Ruby.

fscof
fonte
4

Se você estiver em um PC com Windows, poderá usar WScript.exe ou CScript.exe

Lembre-se de que você não está em um ambiente de navegador; portanto, coisas como document.writeou qualquer coisa que dependa do windowobjeto não funcionará window.alert. Em vez disso, você pode ligar WScript.Echopara enviar as coisas para o prompt.

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

Anders Tornblad
fonte
Existe um para o Ubuntu, o Google Chrome?
BLUC
Você deveria ter colocado essa informação vital em questão. Desculpe, eu sou um geek do Windows - não sei muito sobre o Ubuntu. Além disso, você provavelmente não terá acesso ao Google Chrome ao executar o javascript a partir de um prompt de shell do Ubuntu. EDIT: A resposta de Andrzej Doyle é o caminho a percorrer para você.
Anders Tornblad
4

Tentei pesquisar isso também, mas acabei usando o jsconsole.com por Remy Sharp (ele também criou o jsbin.com). Estou executando o Ubuntu 12.10, então tive que criar um ícone especial, mas se você estiver no Windows e use o Chrome, basta ir em Ferramentas> Criar atalhos de aplicativos (observe que isso não funciona muito bem, ou no meu caso, no Ubuntu). Este site funciona como o jscconsole do Mac : na verdade, ele também possui alguns recursos interessantes (como carregar bibliotecas / código de um URL) que eu acho jscque não.

Espero que isto ajude.

raf
fonte
3

No Ubuntu, instale o libjavascriptcoregtk-3.0-bin e use ( manpage ).um link para instalar /usr/bin/jsc

Keith Cascio
fonte
Mais simples para o Ubuntu 14: sudo apt-get install nodejs; /usr/bin/nodejs foo.js. Observe que é a v0.10.25, um pouco antiga.
Camille Goudeseune
2

Todas as respostas acima são grandes, eu vejo uma coisa que falta e poderia ser considerado para a execução de javascripts(*.js)arquivos, a não relacionado irmão de javascripta Java.

JDKvem com duas boas ferramentas, poderia ser utilizado para a execução javascripts. Aqui estão como comando. Certifique-se de navegar para JDK\bin.

 jjs example.js

Ele vem com outra commmandferramenta que funciona assim:

 jrunscript example.js

Espero que isso possa ser útil para os outros.

Menino vermelho
fonte
1

Esta é uma solução "indireta", mas você pode usar o ipython

Inicie o notebook ipython a partir do terminal:

$ ipython notebook

Ele será aberto em um navegador onde você pode executar o javascript

insira a descrição da imagem aqui

AlexG
fonte
0

Você também pode usar o phantomjsDownload phantomjs, dependendo do sistema (meu caso é Max OSX) em phantomjs.org . Você deve colocar o caminho para a pasta de instalação do phantomjs na parte superior do seu arquivo javascript. por exemplo. #!./bin/phantomjsSalve seu código. Vá para o terminal onde seu javascript está salvo e você pode executar usando> phantomjs filename.js

ewalel
fonte
0

Tecnicamente, o Node.js. não é o JavaScript adequado como o conhecemos, pois não há um DOM (Document Object Model) . Por exemplo, scripts JavaScript executados no navegador não funcionarão. Em absoluto. A solução seria executar o JavaScript com um navegador sem cabeça. Felizmente, ainda há um projeto ativo: o Mozilla Firefox tem um modo sem cabeça .

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.
redolente
fonte
0

Tudo o que você precisa fazer para executar um arquivo js via bash é o tipo: $ node filename.js

Isso é semelhante ao do python, quando você faz: $ python filename.py

stevestar888
fonte