Vscode: Le débogueur se bloque - "Erreur: le module '/bcrypt_lib.node' a été compilé avec une version différente de Node.js ..."

Créé le 12 déc. 2018  ·  3Commentaires  ·  Source: microsoft/vscode

CPU

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

État du GPU

| 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

Charge (moyenne) | 1, 1, 1

Mémoire (système) | 15,42 Go (4,06 Go gratuits)

Process Argv | --disable-gpu

Lecteur d'écran | non

VM | 0%

La dernière version: 1.29.1
Commit: bc24f98b5f70467bc689abf41cc5550ca637088e
Date: 2018-11-15T19: 07: 43.495Z
Électron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architecture: x64

Étapes à suivre pour reproduire:

  1. Avoir un serveur de nœuds utilisant le module bcrypt
  2. Essayez d'utiliser le débogueur avec les paramètres suivants;

    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}/build/index.js",
            "preLaunchTask": "tsc: build - tsconfig.json",
            "outFiles": [
                "${workspaceFolder}/build/**/*.js"
            ]
        }
    ]
}
  1. Notez l'erreur suivante:
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`).

J'ai tenté

  1. rm -rf node_modules suivi de npm install
  2. nvm use avec différentes versions (le package.json répertorie "node": "10.13.0", )
  3. npm rebuild

L'erreur ne se produit pas lorsque l'application est créée et diffusée en dehors du débogueur vscode - l'erreur est unique au débogueur.

Ce problème se produit-il lorsque toutes les extensions sont désactivées?: Oui

debug

Tous les 3 commentaires

@ komali2
Quelle est votre version par défaut de node.js?
exécutez node --version dehors de VS Code et à l'intérieur du terminal intégré de VS Code.
Voyez-vous la même version dans les deux cas?

Si vous utilisez "nvm" ou "nvs", vous pouvez ajouter un "runtimeVersion": "x.y.z" à votre configuration de lancement pour que VS Code utilise une version spécifique de node.js.

Oh je vois, je n'avais pas pensé à ça.

npm version à l'intérieur du terminal VSCode intégré se trouve 10.13.0 , et à l'intérieur de mon terminal actuel se trouvait 8.1... quelque chose. Donc, en dehors de vscode j'ai fait

nvm use 10.13.0

npm rebuild

Ensuite, j'ai essayé à l'intérieur de vscode d'utiliser le débogueur, cependant, j'obtiens toujours l'erreur suivante:

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

Ce n'est probablement pas un bogue VSCODE, maintenant que je vois qu'il y a une différence dans les versions du terminal. Merci quand même pour votre aide. Je suis un peu confus ... Je n'ai aucune idée des versions de nœud à mapper contre NODE_MODULE_VERSION 64 ou 57 , je ne les ai jamais vus référencés de cette façon ...

Si vous utilisez nvm, vous devrez vous assurer que VS Code récupère la version du nœud de nvm (ce n'est pas aussi simple qu'il n'y paraît, car nvm n'utilise pas une variable d'environnement pour cela mais une fonction shell à la place; voir https: // stackoverflow .com / questions / 44700432 / visual-studio-code-to-use-node-version-specified-by-nvm).

Une approche plus explicite (et donc ma recommandée) consiste à ajouter un "runtimeVersion": "8.1.0" à la configuration de lancement.


Je ne sais pas si un npm rebuild est suffisant pour reconstruire un module natif contre une autre version de node.

Cette page vous a été utile?
0 / 5 - 0 notes