Node を Visual Studio Code でデバッグするときにグローバルにインストールしたモジュールが読み込まれない

electron をグローバルでインストールした(ローカルの場合は問題ない)

$ npm -g i electron

electron を起動すると動くのだが、

$ electron .

Electron sample start

Visual Studio Code のデバッグ(Node.js)で実行すると、モジュールが見つからないとなる。

Uncaught Error: Cannot find module ‘electron’

 

おそらくグローバルのモジュールが見つけられていない。グローバルにインストールした場合のパスを確認。

Macで、nodebrew を使っているので、以下にインストールされている

 npm root -g
/Users/hirotoyagi/.nodebrew/node/v16.0.0/lib/node_modules

 

Nodeがグローバルモジュールを探しにいくパスを確認。

上記パスは含まれていない。

$ node -e “console.log(global.module.paths)”
[
 ‘/Users/hirotoyagi/node_modules’,
 ‘/Users/node_modules’,
 ‘/node_modules’
]

上記以外にも、NODE_PATHで指定されたパスを探しにいくようなので、Visual Sutudio Code の launc.json の環境変数に指定する(env.NODE_PATHエントリ)

"configurations": [
    {
         :
        "env": {
            "NODE_PATH":"/Users/hirotoyagi/.nodebrew/node/v16.0.0/lib/node_modules",
        }
    }
]

Electronをデバッグする場合、実行可能ファイル(electron)が~.nodebrew/current/bin/electron に置かれるので、runtimeExecutableに指定する

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      // "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
      "runtimeExecutable": "/Users/hirotoyagi/.nodebrew/current/bin/electron",
      "args" : ["."],
      "outputCapture": "std"
    }
  ]
}

以上。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です