vscode: Launch extension debugger failed

When launch extension debugger, it fails with the following message:

Error: Cannot find module 'c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\spdlog\build\Debug\spdlog.node'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Function.t._load (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:814:682)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at bindings (c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\bindings\bindings.js:81:44)
    at Object.<anonymous> (c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\spdlog\index.js:3:35)
    at Object.<anonymous> (c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\spdlog\index.js:21:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 22 (13 by maintainers)

Most upvoted comments

@joaomoreno I don’t understand this issue either.

Here is all you need to know about .asar.unpacked in two sentences. When creating an .asar, it is possible to leave some files unpacked. In this case, the .asar only contains the file name and the file stats, but the contents are left on disk in a sibling folder .asar.unpacked.

For example, if somebody wants to open bla.asar/foo/bar.txt and the file was left unpacked, then the contents are read from bla.asar.unpacked/foo/bar.txt. But please note that everything after the asar name must be the same!


The error message in https://github.com/Microsoft/vscode/issues/55993#issuecomment-413552939 complains about a certain path:

c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\spdlog\build\spdlog.node

and the Windows Explorer screenshot shows a different path:

C:\Program Files\Microsoft VS Code\resources\app\node_modules.asar.unpacked\spdlog\build\Release\spdlog.node

Please look carefully at the paths and observe that: \spdlog\build\spdlog.node is not equal to \spdlog\build\Release\spdlog.node.

So the error message is valid, c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\spdlog\build\spdlog.node can not be found.

Why is spdlog looking for its native node module at the wrong path? We ship other native node modules which look for their respective .node file at the correct location. Take a look here for example. I think it is possible to look for one’s dll at the right location.

@joaomoreno You posed a question asking @liwangqian to look for a file that does not exist on any machine.

@liwangqian Does the file c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\spdlog\build\Debug\spdlog.node exist?

  • node_modules.asar is a file on disk, it is not a folder that can contain a subfolder called spdlog.
  • when shipping VS Code we build spdlog for Release and not for Debug.

I was trying to help out but it looks like I’ve just confused everybody.