Eu estou olhando para a programação Javascript sem um navegador. Quero executar scripts a partir da linha de comando do Linux ou Mac OS X, assim como executamos qualquer outra linguagem de script (ruby, php, perl, python ...)
$ javascript my_javascript_code.js
Eu olhei para o macaco-aranha (Mozilla) e v8 (Google), mas ambos parecem estar incorporados.
Alguém está usando Javascript como uma linguagem de script para ser executado na linha de comando?
Se alguém é curioso porque eu estou olhando para isso, eu fui bisbilhotando node.js . O desempenho do node.js me faz pensar se o javascript pode ser uma linguagem de script viável para o processamento de grandes dados.
javascript
unix
command-line
scripting
v8
Daniel
fonte
fonte
Respostas:
Encontrei essa pergunta relacionada ao tópico, mas se você quiser links diretos, aqui estão eles:
Estou surpreso que o node.js não vem com um shell, mas acho que é realmente mais como um servidor da Web orientado a eventos e retorno de chamada baseado em epoll / seletor, talvez não precise do conjunto completo de recursos JS, mas eu não estou muito familiarizado com o seu funcionamento interno.
Como você parece interessado no node.js e como é baseado na V8, talvez seja melhor seguir essas instruções para configurar um ambiente V8 para que você possa ter uma base consistente para sua programação JavaScript (espero que o JSC e a V8 sejam principalmente o mesmo, mas não tenho certeza).
fonte
nodejs
no terminal dá acesso ao REPL.Resposta Principal
Sim, para responder sua pergunta, é possível usar o JavaScript como uma linguagem de script "regular" na linha de comando, sem um navegador. Como outros ainda não o mencionaram, vejo que vale a pena mencionar:
Em sistemas baseados no Debian (e isso inclui Ubuntu, Linux Mint e aptosid / sidux, pelo menos), além das opções de instalação do Rhino e outras já mencionadas, você tem outras opções:
Instale o
libmozjs-24-bin
pacote, que fornecerá o mecanismo Spidermonkey da Mozilla na linha de comando como um simplesjs24
, que também pode ser usado como intérprete interativo. (O24
nome indica que corresponde à versão 24 do Firefox).Instale o
libv8-dev
pacote, que fornecerá o mecanismo V8 do Google. Possui, como um de seus exemplos, o arquivo/usr/share/doc/libv8-dev/examples/shell.cc.gz
que você pode descompactar e compilar com muita simplicidade (por exemplo,g++ -Os shell.cc -o shell -lv8
).Instale o pacote
nodejs
e ele estará disponível como executávelnodejs
e como alternativa (no sentido Debian) para fornecer ojs
executável. A compilação JIT é fornecida como cortesia da V8.Instale o pacote
libjavascriptcoregtk-3.0-bin
e use o interpretador JavaScriptCore do WebKit (jsc
) como intérprete regular na linha de comando. E isso sem precisar ter acesso a um Mac. Em muitas plataformas (por exemplo, x86 e x86_64), esse intérprete virá com um compilador JIT.Portanto, com quase nenhuma compilação, você terá três dos mecanismos JavaScript pesados à sua disposição.
Termo aditivo
Depois de instalar as coisas, você pode simplesmente criar arquivos com a
#!/usr/bin/js
linha shebang e tudo funcionará:fonte
Instalei o Node.js em um iMac e
no bash vai funcionar.
fonte
nodejs somefile.js
desde que eu instalei o pacote nodejsEu sei que você perguntou sobre Linux e Mac; Vou fornecer a resposta para o Windows, caso outras pessoas interessadas no Windows encontrem sua pergunta.
O Windows inclui um mecanismo Javascript que pode ser usado na linha de comando.
Todas as versões do Windows, desde o Windows 98, incluem algo chamado " O Windows Script Host ". É uma maneira padrão do Windows de suportar "mecanismos" de script. Desde o primeiro lançamento, o WSH suporta o JScript, a versão do Javascript da Microsoft. Entre outras coisas, isso significa que, em uma linha de comando do Windows, você pode simplesmente chamar o nome de qualquer arquivo * .js, e ele será executado no mecanismo JScript. (via wscript.exe ou cscript.exe)
fonte
Como ninguém o mencionou: Desde o Java 1.6 O Java JDK também vem com uma linha de comando JavaScript e REPL.
É baseado no Rhino: https://developer.mozilla.org/en/docs/Rhino
Nos Java 1.6 e 1.7, o comando é chamado
jrunscript
(jrunscript.exe
no Windows) e pode ser encontrado na pasta bin do JDK.A partir do Java 1.8, é incluída uma nova implementação de JavaScript (Nashorn: https://blogs.oracle.com/nashorn/ )
Portanto, no Java 1.8, o comando é chamado
jjs
(jjs.exe
no Windows)fonte
FWIW, o node.js vem com um shell, tente digitar:
depois de instalar o node.js para vê-lo em ação. É bastante padrão instalar o rlwrap para que ele funcione bem.
fonte
Você pode querer conferir o Rhino .
O Rhino Shell fornece uma maneira de executar scripts JavaScript no modo em lote:
fonte
Eu sei que isso é antigo, mas você também deve tentar o Zombie.js . Um navegador sem cabeça que é incrivelmente rápido e ideal para testes!
fonte
Eu uso o Ubuntu 12.10 e js da linha de comando
Está disponível na minha instalação do java:
Alguns exemplos:
O céu é o limite, então continue em frente.
fonte
O PhantomJS permite que você faça isso também
http://phantomjs.org/
fonte
Eu encontrei esse mecanismo JS realmente bacana de código aberto, compatível com ECMAScript, completamente escrito em C chamado duktape
Boa sorte!
fonte
Bem, há JavaScript como OSA , uma extensão que fornece JavaScript como uma alternativa ao appleScript. Eu uso isso há cerca de 10 anos, não sei se ele ainda está funcionando com as versões atuais do sistema operacional
fonte
O JSDB , disponível para Linux, Windows e Mac, deve se encaixar perfeitamente. Ele usa o mecanismo Javascript Spidermonkey da Mozilla e parece ser menos complicado de instalar em comparação com o node.js (pelo menos na última vez que tentei o node.js há alguns anos).
Encontrei o JSDB nesta interessante lista de shells Javascript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells
fonte