Jak sprawdzić, która wersja v8 jest zainstalowana z moim NodeJS?


140

Jak jest instalowana V8 wraz z NodeJs? W jakiej wersji jest mój obecny silnik V8?

Odpowiedzi:


119

Prosty sposób:
wpisz w wierszu poleceń:node -p process.versions.v8

Ciężko pracujący sposób:

  1. Wpisz, node --versionaby uzyskać wersję Node.js.

  2. Idź do node.js changelog .

  3. Znajdź i otwórz odpowiedni dziennik zmian wersji Node.js.

  4. Poszukaj notatek zawierających V8 to.


100
lub możesz po prostu zapytać węzła, która wersja jest zainstalowana za pośrednictwem process.versions. Trochę łatwiejsze niż przeszukiwanie dziennika zmian. node -e 'console.log(process.versions.v8);'
Ben Taber

kiedy piszę "node --version", nie pojawia się błąd, ale też nie otrzymuję żadnych informacji ... po prostu ponownie wyświetla monit. Każdy pomysł, dlaczego?
geoidesic

Link nie jest już aktualizowany i, jak zauważył Ben Taber lata temu, na szczęście istnieje znacznie bardziej bezpośredni i prostszy sposób .
TJ Crowder

290

Rozwiązanie one-line:
node -p process.versions.v8

Alternatywne rozwiązanie:
node -e "console.log(process.versions.v8)"


2
Zgoda. To także jedyna odpowiedź, która działa w systemie Windows. Wszystkie odpowiedzi na pojedyncze cytaty nie robią nic dziwnego ...
Marc,

37
node -p process.versions.v8jest nieco krótszy. Nie żeby to miało znaczenie, ale może kogoś to obchodzi.
maluje

62

Po prostu biegnij npm version(nie wiem od kiedy to jest dostępne)

> npm version
{ http_parser: '1.0',
  node: '0.10.35',
  v8: '3.14.5.9',
  ares: '1.9.0-DEV',
  uv: '0.10.30',
  zlib: '1.2.8',
  modules: '11',
  openssl: '1.0.1j',
  npm: '1.4.28',
  xsjs: '0.1.5' }

1
Najlepsza odpowiedź, jaką należy wiedzieć. Ponadto, CLI NPM jest whackadoo - jeśli dodasz do tego argument, zwiększy on wersję w twoim pliku package.json, utworzy i otaguje zatwierdzenie git. Całkowicie dziwaczny UX, ale jest to przydatne.
mitchell_st

twoja jest najlepszą odpowiedzią na to pytanie ... Niestety mogę głosować tylko raz .. Dzięki
Daksh

31

Aby sprawdzić swoją wersję, sprawdź wartość w process.versionsREPL.

node -e "console.log(process.versions.v8);"

Dodatkowo możesz skompilować węzeł z innymi wersjami V8, jeśli chcesz. Oczywiście wyniki mogą się znacznie różnić w zależności od wybranych wersji.

cd node-v0.x.x
rm -rf deps/v8
git clone http://github.com/v8/v8.git deps/v8

./configure
make
make install

1
+1, musiałem jednak użyć node -e console.log(process.versions.v8); nic nie było wyświetlane inaczej.
pimvdb

Wygląda na to, że w pewnym momencie zmieniło się to w węźle, dzięki za wskazówkę. Zredagowałem odpowiedź, aby to odzwierciedlić.
Ben Taber

13

Możesz po prostu wpisać:

node -p process.versions.v8


9

Dla zabawy, jeśli masz curl dostępny w swoim terminalu, poniższe informacje powinny dać ci wersję v8:

V=`cat /usr/include/node/node_version.h | grep -E '^\#define NODE_(MAJOR|MINOR|PATCH)_VERSION' | sed -e 's/^[^0-9]*//'`; V=`echo $V | sed -e 's/ /\./g'`; URL=https://github.com/joyent/node/raw/v$V/ChangeLog; curl --silent $URL | grep 'Upgrade v8' | head -1 | sed -e 's/^.* //'; unset V; unset URL

Na przykład w moim pudełku z node.js 0.4.7 otrzymuję:

3.1.8.10

:)


3
Ciekawe, jak definicja zabawy może się różnić w zależności od osoby :)
Arnaud Leyder

9

znajdź zainstalowaną wersję v8 z node.

$ node
> process.versions.v8
'5.1.281.83'
>

gdzie Obiekt procesu jest obiektem globalnym, który dostarcza informacji o bieżącym procesie Node.js i umożliwia nad nim kontrolę.

jeśli wpiszesz proces w replik węzła, zobaczysz informacje o węźle (np. wersja węzła, wersja v8, platforma, informacje o zmiennych env itp.)


9

Jeśli korzystasz z Node.js w wersji 7.7.3 lub podobnej, polecenie to

$ node -p "process.versions"

Ale te powyżej również działają dobrze.


8
node -pe 'this.process.versions'     # all versions
node -pe 'this.process.versions.v8'  # v8 version

2
Dobra odpowiedź zawsze będzie zawierała wyjaśnienie tego, co się robi i dlaczego zostało to zrobione w ten sposób, nie tylko dla PO, ale dla przyszłych gości SO.
Jay Blanchard

Głosowanie w dół, ponieważ nie dodaje to nic ważnego do najczęściej popierającej odpowiedzi w tym pytaniu, która została opublikowana 3 lata temu.
Jarosław Admin

4
Jak to nie dodaje niczego ważnego? Dodaje prawidłowy, sugerowany przez węzeł, sposób sprawdzenia, która wersja jest używana. nodejs.org/en/docs/es6/…
Philiiiiiipp

4

Pozostałe odpowiedzi świetnie nadają się do sprawdzenia aktualnej wersji. Znajduje się tam również tabela ze wszystkimi wersjami Node.js: https://nodejs.org/en/download/releases/ . Fragment na przykład:

Version             Date        V8          npm     NODE_MODULE_VERSION
Node.js 11.0.0      2018-10-23  7.0.276.28  6.4.1   67
Node.js 10.13.0     2018-10-30  6.8.275.32  6.4.1   64
Node.js 10.12.0     2018-10-10  6.8.275.32  6.4.1   64

0

Możesz również sprawdzić dowolną wersję nodejs v8 za pomocą dockera, na przykład node 10.7.0: docker run --rm -it node:10.7.0 bash -c "node -p process.versions"


0

v8 jest dołączony do Node.js. Możesz zobaczyć, jakiej wersji v8 używa dowolna wersja Node.js i kiedy weszła do produkcji, przeglądając wersję v8 ChangeLogz noderepozytorium. To jest aktualny master (jeśli budujesz ze źródła): https://github.com/nodejs/node/commits/master/deps/v8/ChangeLog

Aby wyświetlić konkretną wersję Node.js, przełącz gałąź na tę wersję i sprawdź ChangeLoghistorię plików s.

Historia zmian w Node.js

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.