Visual Studio Codeを使用してフロントエンドのJavaScriptをデバッグしています(Wordpressプラグインの場合)。launch.jsonファイルを正しく構成できません。
chromeを手動で起動し、事後に(Attachリクエストを使用して)アタッチすることができます。その場合、javascriptブレークポイントは正常に機能します。
Vscode内から(Launchリクエストを使用して)chromeを起動すると、接続は行われます(コンソール出力が表示されます)が、ブレークポイントが起動しません。私のlaunch.jsonファイル。
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Signup Form",
"type": "chrome",
"request": "launch",
"url": "http://myclient.dev/signup-form",
"sourceMaps": true,
"webRoot": "../../..",
"runtimeArgs": [
"--remote-debugging-port=9222"
]
},
{
"name": "Attach",
"type": "chrome",
"request": "attach",
"port": 9222
}
]
}
私はウェブルートについて考えられることは何でも試しました(「htdocs」のウェブルートへの完全なローカルパスと上記の相対パスを含みます。そこに何を入れてもかまわないようですので、多分私は間違った木を吠えています。
ローカルプロジェクトフォルダは次のとおりです。
/home/me/code/vagrant-local/www/wordpress-myclient/htdocs/wp-content/plugins/cee-signup-form
サーバー上では、次のようにマップされます。
http://myclient.dev/wp-content/plugins/cee-signup-form
「signup-form」ページに、完全なURLを使用して、問題のjavascriptファイルを含めます。
もちろん、手動でURLにアクセスして、デバッグするたびに添付することもできますが、ワンクリックで起動してデバッグする方がはるかに優れています。
私は何が間違っているのですか?
以下の手順に従ってください。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Node",
"port": 9229,
"protocol": "inspector",
"runtimeExecutable": "npm",
"runtimeArgs": ["run-script", "start"],
"console": "integratedTerminal"
},
{
"type": "chrome",
"request": "launch",
"name": "Chrome",
"url": "http://localhost:3000",
"webRoot": "${workspaceRoot}/client/src"
}
],
"compounds": [
{
"name": "Full-stack",
"configurations": ["Node", "Chrome"]
}
]
}
VS Codeでデバッグモードに移動し、「フルスタック」から始めます。
Npmを開始します
これを参照してください: https://github.com/auchenberg/timey
私の場合、Ubuntu 14.04では、追加した後に機能しました
"runtimeExecutable": "/usr/bin/chromium-browser"
ただし、事前にchromeを開始する必要があります。
VSCodeのバグであることが判明し、最新バージョン(1.2.1)で修正されています。更新後、私は3つのことをしなければなりませんでした。
Chrome拡張機能を更新します
VSCodeで、CTRL + Pを押してコマンドパレットを表示し、次の操作を行います。
Extensions: Show Outdated Extensions
この時点で、それらを更新できるようになります。詳細はこちら: https://code.visualstudio.com/Docs/editor/extension-gallery#_update-an-extension
起動設定を編集します
現在、Webルートの絶対パスが必要です。そのため、launch.json
ファイルのwebRoot
プロパティを変更して、ワークスペースルートを明示的に含める必要がありました。
"webRoot": "${workspaceRoot}/../../..",
デバッグ前にChromeのすべてのコピーを閉じる
これは迷惑です。しかし、それは機能します。