Wie überprüfe ich, welche Version von v8 mit meinem NodeJS installiert ist?

140

Wie wird V8 zusammen mit NodeJs installiert? Welche Version ist mein aktueller V8-Motor?

Lalith
quelle

Antworten:

119

Einfacher Weg:
Geben Sie die Befehlszeile ein:node -p process.versions.v8

Harte Arbeitsweise:

  1. Geben Sie ein node --version, um die Node.js-Version abzurufen.

  2. Gehen Sie zu den Node.js Changelogs .

  3. Suchen und öffnen Sie das entsprechende Node.js-Versionsänderungsprotokoll.

  4. Suchen Sie nach Notizen mit V8 to.

alienhard
quelle
100
Oder Sie können den Knoten einfach fragen, welche Version über process.versions installiert ist. Ein bisschen einfacher als das Durchsuchen des Änderungsprotokolls. node -e 'console.log(process.versions.v8);'
Ben Taber
Wenn ich "node --version" eingebe, wird kein Fehler angezeigt, aber ich erhalte auch keine Informationen. Es wird nur die Eingabeaufforderung erneut angezeigt. Irgendeine Idee warum?
Geoidesic
Der Link wird nicht mehr aktualisiert, und wie Ben Taber vor Jahren betonte, gibt es zum Glück einen viel direkteren und einfacheren Weg .
TJ Crowder
290

Einzeilige Lösung:
node -p process.versions.v8

Alternative Lösung:
node -e "console.log(process.versions.v8)"

Mike B.
quelle
2
Einverstanden. Dies ist auch die einzige Antwort, die unter Windows funktioniert. Alle Antworten in einfachen Anführungszeichen tun nichts Seltsames ...
Marc
37
node -p process.versions.v8ist etwas kürzer. Nicht dass es wichtig wäre, aber vielleicht interessiert es jemanden.
Slikts
62

Einfach ausführen npm version(weiß nicht, wann dies verfügbar ist)

> 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' }
Peter Dotchev
quelle
1
Beste Antwort zu wissen. Außerdem ist die CLI von NPM ein Whackadoo. Wenn Sie ein Argument hinzufügen, wird die Version in Ihrer package.json-Datei erhöht, ein Git-Commit erstellt und markiert. Äußerst bizarres UX, aber das ist nützlich.
Mitchell_st
Ihre ist die beste Antwort auf diese Frage ... Leider kann ich nur einmal abstimmen. Danke
Daksh
31

Um Ihre Version zu überprüfen, überprüfen Sie den Wert process.versionsin der REPL.

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

Darüber hinaus können Sie Knoten auf Wunsch mit anderen Versionen von V8 kompilieren. Offensichtlich können die Ergebnisse hier stark variieren, je nachdem, welche Versionen Sie wählen.

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

./configure
make
make install
Ben Taber
quelle
1
+1 musste ich allerdings benutzen node -e console.log(process.versions.v8); sonst wurde nichts ausgegeben.
Pimvdb
Sieht so aus, als hätte sich das irgendwann im Knoten geändert, danke für den Tipp. Die Antwort wurde bearbeitet, um dies widerzuspiegeln.
Ben Taber
13

Sie können einfach Folgendes eingeben:

node -p process.versions.v8

Gaui
quelle
9

Nur zum Spaß, wenn Sie Curl in Ihrem Terminal zur Verfügung haben, sollte das Folgende Ihnen die Version v8 geben:

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

Zum Beispiel bekomme ich in meiner Box mit node.js 0.4.7:

3.1.8.10

:) :)

Mariano Iglesias
quelle
3
Interessant, wie die Definition von Spaß von Individuum zu Individuum variieren kann :)
Arnaud Leyder
9

Suchen Sie die installierte Version 8 mit Knoten.

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

wo Der Prozess ein globales Objekt, das Informationen zum aktuellen Node.js-Prozess bereitstellt und diesen steuert.

Wenn Sie nur process in node repl eingeben, werden Informationen zum Knoten angezeigt (z. B. Knotenversion, Version v8, Plattform, Informationen zu Umgebungsvariablen usw.).

Siyaram Malav
quelle
9

Wenn Sie Node.js Version 7.7.3 oder ähnliches verwenden, lautet der Befehl

$ node -p "process.versions"

Aber die oben genannten funktionieren auch gut.

7Rust
quelle
8
node -pe 'this.process.versions'     # all versions
node -pe 'this.process.versions.v8'  # v8 version
Vadim
quelle
2
Eine gute Antwort wird immer eine Erklärung darüber enthalten, was getan wird und warum es so gemacht wurde, nicht nur für das OP, sondern auch für zukünftige Besucher von SO.
Jay Blanchard
Downvoting, weil es der am besten bewerteten Antwort in diesen Fragen, die vor 3 Jahren veröffentlicht wurde, nichts Wichtiges hinzufügt.
Jaroslaw Admin
4
Wie fügt das nichts Wichtiges hinzu? Es wird die richtige, vom Knoten vorgeschlagene Methode hinzugefügt, um herauszufinden, welche Version verwendet wird. nodejs.org/en/docs/es6/…
Philiiiiiipp
4

Die anderen Antworten eignen sich hervorragend zum Überprüfen Ihrer aktuellen Version. Es gibt auch eine Tabelle mit allen Node.js-Versionen hier: https://nodejs.org/en/download/releases/ . Auszug zum Beispiel:

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
ZachB
quelle
0

Sie können auch jede Version von nodejs v8 mit Docker überprüfen, z. B. node 10.7.0: docker run --rm -it node:10.7.0 bash -c "node -p process.versions"

Geng Jiawen
quelle
0

v8 wird mit Node.js gebündelt. Sie können sehen, welche Version von v8 eine Version von Node.js verwendet und wann sie in Produktion ging, indem Sie die Version 8 ChangeLogaus dem nodeRepository anzeigen . Dies ist der aktuelle Master (wenn aus der Quelle erstellt): https://github.com/nodejs/node/commits/master/deps/v8/ChangeLog

Um eine bestimmte Version von Node.js anzuzeigen, wechseln Sie den Zweig zu dieser Version und überprüfen Sie den ChangeLogDateiversionsverlauf.

Node.js Änderungsprotokollverlauf

Kammerherr
quelle