Chạy động cơ Javascript Javascript độc lập


127

Tôi muốn chạy một giao diện điều khiển Javascript trên đầu V8. Làm thế nào để tôi làm điều này?

Câu trả lời:


115

V8 rất dễ xây dựng và không đi kèm với chi phí Java VM từ trình thông dịch Javascript độc lập của Mozilla. May mắn thay, động cơ V8 với mã để xây dựng một giao diện điều khiển. Đây là cách xây dựng cái này:

$> svn đồng http://v8.googlecode.com/svn/trunk v8-trunk
...
$> cd v8-thân
$>
$> g ++ ./samples/shell.cc -o v8-shell -Tôi bao gồm libv8.a 

Bây giờ, chúng ta có một nhị phân độc lập được gọi là v8-shell.

Chạy bảng điều khiển:

$> ./v8- 
Phiên bản V8 2.0.2
> var x = 10;
> x
10
> hàm foo (x) {return x * x; }
> foo
hàm foo (x) {return x * x; }
> bỏ ()

Thực thi Javascript từ dòng lệnh:

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

Nhiều tính năng khác được ghi lại trong trợ giúp:

$> ./v8-shell - trợ giúp
Sử dụng:
...

9
Cảm ơn các mẹo và hướng dẫn rõ ràng. Tôi đã phải thêm tùy chọn -lpthreadvào g++lệnh trong ubfox 10.04.
trực giác

1
scons thất bại với tôi trên Ubuntu, nhưng chạy sudo apt-get install libc6-dev-i386 đã giải quyết điều đó.
Thorsten Lorenz

2
và nếu x86_64 vào làm một: 'scons cong = x64' cho đến khi nó cố định trong thân cây code.google.com/p/v8/issues/detail?id=429#c1
EDH

4
Xin lưu ý rằng vỏ v8 này được dự định là một ví dụ đồ chơi. Vỏ v8 "thực" được gọi d8. Xem câu trả lời của tôi để biết thêm.
bukzor

2
Phương thức tìm nạp mã nguồn dường như đã thay đổi. Xem ở đây .
Colliot

59

Để xây dựng bảng điều khiển dành cho nhà phát triển, thay vì ứng dụng đồ chơi 'shell' ví dụ, hãy sao chép-dán các lệnh bên dưới vào thiết bị đầu cuối của bạn.

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

Các hướng dẫn này sẽ hoạt động cho Ubuntu / Debian với hạt nhân "chung". Đối với các bản phân phối khác, bạn sẽ cần thay thế lệnh apt-get bằng bất kỳ công cụ gói nào bạn có sẵn. Trên hệ thống 64 bit, bạn có thể cần thêm arch=x64. Các console=readlinetùy chọn cho phép người readline hệ thống, để làm cho nó cảm thấy một chút giống như một vỏ tiêu chuẩn.

Tài liệu đầy đủ hơn tại đây: http://code.google.com.vn/apis/v8/build.html


Ghi chú:

nhập mô tả hình ảnh ở đây

Xem thêm: Xây dựng v8 với GYP


9
Tôi đã phải thêm arch=x64để xây dựng trên Ubuntu 64 bit.
dự án

@Hugh: Nó cho phép hệ thống readline; đây là những gì cho phép bạn sử dụng mũi tên lên để nhận lệnh trước đó, trong số các chi tiết khác.
bukzor

Khi tòa nhà đã hoàn thành, chạy vỏ bằng cách nhập ./d8.
Mathias Bynens

trên ubunt 12.04: lỗi nghiêm trọng: readline / readline.h: Không có tệp hoặc thư mục như vậy - có ý tưởng nào không?
pguardiario

43

Làm thế nào về việc chạy V8 Javascript thông qua dòng lệnh bằng cách sử dụng node.js ?

node.js sử dụng v8 làm công cụ của nó và thêm rất nhiều chức năng lên trên nó.


Ví dụ: trên Mac OSX nếu bạn đã cài đặt Homebrew , chỉ cần phát hành:

    $ brew install node
    $ node
    > 

1
IMHO node.js là tiêu chuẩn defacto mới khi nói đến bảng điều khiển JavaScript. Nó sử dụng v8, và có lẽ là tùy chọn tốt nhất để sử dụng cho việc này.
Tracker1

23

Trên Mac OS X, hãy chắc chắn đã brewcài đặt. Sau đó, chỉ cần chạy lệnh (sudo) brew install v8, tùy thuộc vào máy của bạn, việc này có thể mất một chút thời gian. Để khởi động bảng điều khiển V8, chỉ cần chạy v8- Voilà!

Mẹo: Để thoát khỏi bảng điều khiển, chỉ cần chạy quit()và đừng quên dấu ngoặc đơn!


1
Hoặc chỉ cần nhấn Ctrl-Dđể thoát :)
Dogbert 18/03/13

Hoặc Ctrl-Cđể giết nó
Braden Best

Bạn có thể tự xây dựng v8 và nó đủ đơn giản, sử dụng brew chỉ là quá cồng kềnh.
b01

4
Làm thế nào là 'brew install v8' cồng kềnh?
Devan Buggay

5

Tôi nghĩ rằng điều này có thể đã thay đổi. Tôi đọc hướng dẫn và xây dựng v8 như thế này:

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

đã thêm vào export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.release.bashrc của tôi

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

(Với javascript từ aditsu và A-small-practice.in từ Google Code Jam)


2
Một trang chứa đầy các câu trả lời và của bạn, ít được xem xét nhất, chứa lời khuyên cuối cùng tôi cần.
Seth Difley

4

Sau khi làm theo các hướng dẫn xây dựng ( Tài liệu xây dựng V8 của Google ) cho hệ thống của bạn;

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

Tôi đã tạo một bí danh trong .bash_profile của mình để tạo điều kiện cho việc gọi shell.

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

Nhập v8 vào CLI (trong Terminal hoặc shell mới - để tải lại hồ sơ bash của bạn) sẽ tạo ra vỏ v8. JavaScript tại dấu nhắc lệnh! :)


3

Nếu bạn sử dụng ArchLinux, bạn có thể sử dụng pacman -S v8để cài đặt nó. Sau đó sử dụng d8để bắt đầu nó trong vỏ của bạn. Hãy tận hưởng nó.


1
Điều đó dường như là trên AUR vì vậy không thể được cài đặt với pacman.
Colliot

3

Trong trường hợp bạn muốn chạy mã nguồn javascript của mình bằng công cụ v8 hoặc bất kỳ phiên bản nào của nó, bạn có thể sử dụng công cụ dòng lệnh jsvu . Nó được phát triển và duy trì bởi các kỹ sư của Google và, bên cạnh đó, nó cung cấp tính năng cài đặt các công cụ javascript khác ngoài v8 , chẳng hạn như spidermonkey , chakracore , javascriptcorexs .


2

Nếu bạn dự định nhúng V8, thì bằng mọi cách, hãy xây dựng nó và chơi với "d8".

Mặt khác, nếu bạn không có kế hoạch mở rộng V8 hoặc coi nó là tùy chọn, thì chỉ cần sử dụng Node.JS. Đừng bận tâm với động cơ V8 thuần túy.

Node.js có I / O thực sự phong phú, các tiện ích mở rộng, thư viện (như Perl CPAN, Python Eggs, Ruby Gems) và cộng đồng.


Bạn không cần phải sử dụng node.js, nó chỉ là một trình bao bọc và phụ thuộc thêm.
b01
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.