V8 Javascript Motorunu Bağımsız Olarak Çalıştırma


128

V8'in üstünde bir Javascript konsolu çalıştırmak istiyorum. Bunu nasıl yaparım?

Yanıtlar:


115

V8'in oluşturulması kolaydır ve Mozilla'nın bağımsız Javascript yorumlayıcısının Java VM ek yüküyle birlikte gelmez. Neyse ki, V8 bir konsol oluşturmak için kodla birlikte gelir. Bunu nasıl inşa edeceğiniz aşağıda açıklanmıştır:

$> svn co http://v8.googlecode.com/svn/trunk v8-trunk
...
$> cd v8-gövde
$> scons
$> g ++ ./samples/shell.cc -o v8-shell -Ibv8.a'yı dahil ediyorum 

Şimdi, adında bağımsız bir ikili var v8-shell.

Konsolu çalıştırmak:

$> ./v8-shell 
V8 sürüm 2.0.2
> var x = 10;
> x
10
> fonksiyon foo (x) {dönüş x * x; }
> foo
function foo (x) {dönüş x * x; }
> çık ()

Javascript'i komut satırından çalıştırmak:

$> ./v8-shell -e 'yazdır ("10 * 10 =" + 10 * 10)'
10 * 10 = 100

Yardımda daha birçok özellik belgelenmiştir:

$> ./v8-shell --help
Kullanımı:
...

9
İpucu ve açık talimatlar için teşekkürler. Ben seçeneği eklemek zorunda -lpthreadiçin g++ubuntu 10,04 altında komuta.
intuited

1
scons Ubuntu'da benim için başarısız oldu, ancak sudo apt-get install libc6-dev-i386 çalıştırmak bunu çözdü.
Thorsten Lorenz

2
ve eğer x86_64 üzerinde, gövde code.google.com/p/v8/issues/detail?id=429#c1
EdH

4
Lütfen bu v8 kabuğunun oyuncak bir örnek olması amaçlandığını unutmayın. "Gerçek" v8 kabuğu denir d8. Daha fazla bilgi için cevabıma bakın.
bukzor

2
Kaynak kodunu getirme yöntemi değişmiş görünüyor. Buraya bakın .
Colliot

59

Örnek 'kabuk' oyuncak uygulaması yerine geliştirici konsolunu oluşturmak için aşağıdaki komutları kopyalayıp terminalinize yapıştırın.

sudo apt-get install subversion scons libreadline-dev
svn co http://v8.googlecode.com/svn/trunk v8
cd v8/
scons console=readline d8

Bu talimat Ubuntu / Debian için "jenerik" bir çekirdek ile çalışacaktır. Diğer dağıtımlar için, apt-get komutunu, sahip olduğunuz paket aracı ile değiştirmeniz gerekecektir. 64 bit sistemlerde eklemeniz gerekebilir arch=x64. console=readlineSeçenek sağlayan taleb standart bir kabuk gibi biraz daha hissettirmek için, sistem.

Daha eksiksiz belgeler burada: http://code.google.com/apis/v8/build.html


Not:

görüntü açıklamasını buraya girin

Ayrıca bkz: GYP ile v8 oluşturma


9
arch=x6464bit ubuntu üzerine inşa etmek zorunda kaldım .
projectshave

@Hugh: Readline sistemini etkinleştirir; bu, diğer ayrıntıların yanı sıra önceki komutu almak için yukarı oku kullanmanıza izin veren şeydir.
bukzor

İnşaat bittiğinde, girerek kabuğu çalıştırın ./d8.
Mathias Bynens

12.04 ubunt üzerinde: ölümcül hata: readline / readline.h: Böyle bir dosya veya dizin yok - herhangi bir fikir?
pguardiario

44

Node.js kullanarak komut satırı aracılığıyla V8 Javascript çalıştırmaya ne dersiniz ?

node.js, motor olarak v8'i kullanır ve üstüne birçok işlevsellik ekler.


Örneğin, Mac OSX'te Homebrew kuruluysa, basitçe şunu sorun:

    $ brew install node
    $ node
    > 

1
IMHO node.js, JavaScript konsolları söz konusu olduğunda yeni varsayılan standarttır. V8 kullanıyor ve muhtemelen bunun için kullanılacak en iyi seçenektir.
Tracker1

23

Mac OS X'te brewkurulu olduğundan emin olun . Ardından (sudo) brew install v8, makinenize bağlı olarak sadece komutu çalıştırın, bu biraz zaman alabilir. V8 konsolunu başlatmak için v8koşmanız yeterli - Voilà!

İpucu: Konsoldan çıkmak için koşun quit()ve parantezleri unutmayın!


1
Ya da Ctrl-Dçıkmak için tuşuna basın :)
Dogbert

Ya Ctrl-Cda öldürmek için
Braden Best

V8'i kendi başına oluşturabilirsiniz ve yeterince basittir, demleme kullanmak çok zahmetlidir.
b01

4
'Brew install v8' nasıl külfetli?
Devan Buggay

5

Sanırım bu değişmiş olabilir. Ben manuel okumak böyle ve yapı v8'i:

moose@pc08$ svn co http://v8.googlecode.com/svn/trunk v8-trunk
moose@pc08$ cd v8-trunk
moose@pc08$ make dependencies
moose@pc08$ make ia32.release

export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.release.bashrc dosyama eklendi

moose@pc08 ~ $ source ~/.bashrc
moose@pc08 ~ $ d8 A_tic_tac_toe_Tomek.js < A-small-practice.in

( Aditsu'dan javascript ve Google Code Jam'den A-small-practice.in ile)


2
En az dikkate alınan yanıtlarla dolu bir sayfa, ihtiyacım olan son tavsiyeleri içeriyor.
Seth Difley

4

Oluşturma talimatlarını izledikten sonra (Sisteminiz için Google'ın V8 Derleme Belgeleri ) ;

[v8 directory]$ cd out/native
[v8 directory]$ ./shell (sample shell)
[v8 directory]$ ./d8 (console: dumb)

Kabuğun çağrılmasını kolaylaştırmak için .bash_profile dosyamda bir takma ad oluşturdum.

alias v8='/Volumes/Dev/GitHub/v8/out/native/shell'

CLI'de v8 yazmak (yeni bir Terminalde veya kabukta - bash profilinizi yeniden yüklemek için) v8 kabuğunu verir. Komut isteminde JavaScript! :)


3

ArchLinux kullanıyorsanız pacman -S v8, onu kurmak için kullanabilirsiniz . Ardından d8kabuğunuzda başlatmak için kullanın . Tadını çıkar.


1
Görünüşe göre AUR üzerinde olduğu için pacman ile yüklenemez.
Colliot

3

Javascript kaynak kodunuzu v8 motorunu veya herhangi bir sürümünü kullanarak çalıştırmak isterseniz , jsvu komut satırı aracını kullanabilirsiniz. Google mühendisleri tarafından geliştirilmiş ve sürdürülmüştür ve ayrıca v8 dışında spidermonkey , chakracore , javascriptcore ve xs gibi diğer javascript motorlarını kurma özelliği sunar .


2

V8'i yerleştirmeyi planlıyorsanız, elbette onu oluşturun ve "d8" ile oynayın.

Öte yandan, V8'i genişletmeyi veya isteğe bağlı olarak ele almayı planlamıyorsanız, yalnızca Node.JS'yi kullanın. Saf V8 ile uğraşmayın.

Node.js gerçekten zengin I / O'ya, uzantılara, kitaplıklara (Perl CPAN, Python Yumurtaları, Ruby Taşları gibi) ve topluluğa sahiptir.


Node.js kullanmanıza gerek yok, bu sadece bir sarmalayıcı ve ekstra bağımlılıktır.
b01
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.