Vscode: Debugger stürzt ab - "Fehler: Das Modul '/bcrypt_lib.node' wurde gegen eine andere Node.js-Version kompiliert ..."

Erstellt am 12. Dez. 2018  ·  3Kommentare  ·  Quelle: microsoft/vscode

CPUs

| Intel (R) Core (TM) i7-8650U-CPU bei 1,90 GHz (8 x 816)
- | - -

GPU-Status

| 2d_canvas: unavailable_softwarechecker_imaging: disabled_offflash_3d: unavailable_softwareflash_stage3d: unavailable_softwareflash_stage3d_baseline: unavailable_softwaregpu_compositing: unavailable_softwaremultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: unavailable_softwarevideo_decode: unavailable_softwarevideo_encode: unavailable_softwarewebgl: enabled_readbackwebgl2: unavailable_off

Laden (Durchschnitt) | 1, 1, 1

Speicher (System) | 15,42 GB (4,06 GB kostenlos)

Prozess Argv | --disable-gpu

Bildschirmleser | Nein

VM | 0%

Version: 1.29.1
Commit: bc24f98b5f70467bc689abf41cc5550ca637088e
Datum: 2018-11-15T19: 07: 43.495Z
Elektron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architektur: x64

Schritte zum Reproduzieren:

  1. Haben Sie einen Knotenserver mit dem Modul bcrypt
  2. Versuchen Sie, den Debugger mit den folgenden Einstellungen zu verwenden.

    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}/build/index.js",
            "preLaunchTask": "tsc: build - tsconfig.json",
            "outFiles": [
                "${workspaceFolder}/build/**/*.js"
            ]
        }
    ]
}
  1. Beachten Sie den folgenden Fehler:
module.js:682
  return process.dlopen(module, path._makeLong(filename));
                 ^
Error: The module '/home/calebjay/Documents/work/internal-admin/node_modules/bcrypt/lib/binding/bcrypt_lib.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).

Ich habe es versucht

  1. rm -rf node_modules gefolgt von npm install
  2. nvm use mit verschiedenen Versionen (die package.json listet "node": "10.13.0", )
  3. npm rebuild

Der Fehler tritt nicht auf, wenn die App außerhalb des vscode-Debuggers erstellt und bereitgestellt wird. Der Fehler gilt nur für den Debugger.

Tritt dieses Problem auf, wenn alle Erweiterungen deaktiviert sind?: Ja

debug

Alle 3 Kommentare

@ komali2
Was ist Ihre Standardversion von node.js?
Führen Sie node --version außerhalb von VS Code und innerhalb des integrierten Terminals von VS Code aus.
Sehen Sie in beiden Fällen die gleiche Version?

Wenn Sie "nvm" oder "nvs" verwenden, können Sie Ihrer Startkonfiguration ein "runtimeVersion": "x.y.z" hinzufügen, damit VS Code eine bestimmte Version von node.js verwendet.

Oh, ich verstehe, das hatte ich nicht bedacht.

npm version im integrierten VSCode-Terminal ist 10.13.0 , und in meinem eigentlichen Terminal war 8.1... etwas. Also, außerhalb von vscode habe ich getan

nvm use 10.13.0

npm rebuild

Dann habe ich in vscode versucht, den Debugger zu verwenden. Es wird jedoch immer noch der folgende Fehler angezeigt:

was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing

Dies ist wahrscheinlich kein VSCODE-Fehler, jetzt, da ich sehe, dass es einen Unterschied in den Terminalversionen gibt. Trotzdem vielen Dank für Ihre Hilfe. Ich bin ein bisschen verwirrt ... Ich habe keine Ahnung, welche Versionen des Knotens auf NODE_MODULE_VERSION 64 oder 57 sollen. Ich habe noch nie gesehen, dass sie so bezeichnet werden ...

Wenn Sie nvm verwenden, müssen Sie sicherstellen, dass VS Code die Knotenversion von nvm übernimmt (dies ist nicht so einfach, wie es scheint, da nvm hierfür keine Umgebungsvariable, sondern eine Shell-Funktion verwendet; siehe https: // stackoverflow .com / question / 44700432 / visual-studio-code-to-use-knotenversion-angegeben-von-nvm).

Ein expliziterer (und daher von mir empfohlener) Ansatz besteht darin, der Startkonfiguration ein "runtimeVersion": "8.1.0" hinzuzufügen.


Ich weiß nicht, ob ein npm rebuild ausreicht, um ein natives Modul gegen eine andere Version des Knotens neu zu erstellen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen