次の方法で共有


Visual Studio Code で SharePoint Framework ソリューションをデバッグする

Visual Studio Code は、SharePoint Framework ソリューションのビルドによく使用される人気のあるコード エディターです。 SharePoint Framework ソリューションのデバッグを Visual Studio Code 内でセットアップすると、コードをより効率的にステップスルーし、エラーを修正できます。

Visual Studio Code でデバッグを有効にするために必要な手順は、Microsoft 365 Platform Communtiy (PnP) の YouTube チャンネル のこちらのビデオでも確認できます。

前提条件

SharePoint Framework ソリューションをデバッグするように Visual Studio Code (VS Code) を構成する最も簡単な方法は、VS Code に含まれる JavaScript デバッガーを使用して Chrome & Edge をデバッグすることです。

Google Chrome または Microsoft Edge も必要です。

デバッグ構成

デバッグ構成は、Visual Studio Code のワークスペース フォルダーの下にある ./vscode/launch.json ファイルにあります。

ブレークポイントを構成する

  1. Visual Studio Code でメイン Web パーツのソース ファイルを開き、render() メソッドの最初の行にブレークポイントを追加します。そのためには、行番号の左側にある余白を選択するか、エディターで対象コード行を強調表示して F9 キーを選択します。

    Visual Studio Code の SharePoint Framework クライアント側 Web パーツで構成されているブレークポイント

  2. Visual Studio Code の [表示] メニューで [統合ターミナル] オプションを選択するか、キーボードで Ctrl+` キーを選択します。

  3. ターミナルで次のコマンドを実行します。

    gulp serve --nobrowser
    

    このコマンドを実行すると、SharePoint Framework ソリューションがビルドされ、ローカル Web サーバーが起動して出力ファイルが提供されます。 デバッガーはブラウザーの独自のインスタンスを開始するので、--nobrowser 引数を使用して、serve タスクによってブラウザー ウィンドウが開かないようにします。

    Visual Studio Code の統合ターミナルに入力された gulp serve コマンド

Visual Studio Code でデバッグを開始する

gulp タスクが終了したら、フォーカスを Visual Studio Code のコード領域に移動し、F5 を選択します (または、[デバッグ] メニューで [デバッグの開始] オプションを選択します)。

Visual Studio Code がデバッグ モードで開始され、ステータス バーの色がオレンジに変わり、Google Chrome の新しいウィンドウが開いて SharePoint ワークベンチが表示されます。

注:

この時点で、Web パーツのコードがまだ読み込まれていないため、ブレークポイントは無効です。 SharePoint Framework によってオンデマンドで Web パーツが読み込まれるのは、Web パーツがページに追加された後だけです。

デバッグ モードの Visual Studio Code と、その隣に SharePoint ワークベンチが表示されている Google Chrome

Web パーツをキャンバスに追加する

デバッグが機能していることを確認するには、ワークベンチでキャンバスに Web パーツを追加します。

SharePoint ワークベンチに開いている Web パーツ ツールボックス

ページにコードが読み込まれたら、ブレークポイント インジケーターがアクティブに変わったことを確認してください。

キャンバスに Web パーツが追加された後のアクティブ状態のブレークポイント

ページをこの状態で再読み込みすると、Visual Studio Code のブレークポイントがヒットし、すべてのプロパティを検査し、コードをステップスルーできるようになります。

Visual Studio Code でヒットしているブレークポイント

ホストされているワークベンチを使ったデバッグ ソリューション

SharePoint と通信する SharePoint Framework ソリューションをビルドするときは、SharePoint で対象ソリューション間の相互作用を検証できます。 この検証を簡単に行うには、ホストされているバージョンの SharePoint ワークベンチを使用できます。このワークベンチは https://yourtenant.sharepoint.com/_layouts/workbench.aspx にあるすべての Microsoft 365 テナントで利用できます。

SharePoint Framework ソリューションをビルドするときは、そのようなテストを定期的に実行し、ホストされているバージョンの SharePoint ワークベンチ用のデバッグ構成を別個に作成しておくことをお勧めします。

ホストされているワークベンチを使用した Web パーツ ソリューションのデバッグ

  1. .vscode/launch.json を開き、[ホストされているワークベンチ] 構成の url プロパティを SharePoint サイトの URL に更新します。

    "url": "https://enter-your-SharePoint-site/_layouts/workbench.aspx",
    
  2. Visual Studio Code で [デバッグ] ウィンドウをアクティブにして、[構成] リストで新たに追加した [ホストされているワークベンチ] 構成を選択します。

    Visual Studio Code のデバッグの [構成] ドロップダウンで選択状態の [ホストされているワークベンチ] 構成

  3. F5 キーを選択するか、[デバッグ] メニューで [デバッグの開始] オプションを選択して、デバッグを開始します。 Visual Studio Code のステータス バーがオレンジ色になってデバッグ モードに切り替わったことが示されます。Debugger for Chrome 拡張機能によって Google Chrome の新しいインスタンスに Microsoft 365 サインイン ページが開きます。

    ホストされているワークベンチでデバッグを開始した後に Google Chrome に表示される Microsoft 365 ログイン ページ

  4. サインインしたら、Web パーツをキャンバスに追加し、ワークベンチを更新します。 Visual Studio Code にヒットしているブレークポイントが表示され、変数を検査し、コードをステップスルーできます。

    ホストされているワークベンチで SharePoint Framework クライアント側 Web パーツをデバッグしているときに Visual Studio Code でヒットしたブレークポイント

ホストされているワークベンチを使用した拡張機能ソリューションのデバッグ

ホストされているワークベンチで拡張機能をデバッグする方法は、Web パーツの手順と類似していますが、いくつかの重要な違いがあります。

  1. .vscode/launch.json を開き、[ホストされているワークベンチ] 構成の url プロパティを SharePoint サイトの URL に更新します。

    "url": "https://enter-your-SharePoint-site/_layouts/workbench.aspx",
    
  2. Visual Studio Code で [デバッグ] ウィンドウをアクティブにして、[構成] リストで新たに追加した [ホストされているワークベンチ] 構成を選択します。

    Visual Studio Code のデバッグの [構成] ドロップダウンで選択状態の [ホストされているワークベンチ] 構成

  3. ターミナルで gulp serve を開始したら、F5 キーを押すか、[デバッグ] メニューの [デバッグの開始] オプションを選択して、デバッグを開始します。 Visual Studio Code のステータス バーがオレンジ色になってデバッグ モードに切り替わったことが示されます。Debugger for Chrome 拡張機能によって Google Chrome の新しいインスタンスに Microsoft 365 サインイン ページが開きます。

    ホストされているワークベンチでデバッグを開始した後に Google Chrome に表示される Microsoft 365 ログイン ページ

  4. ブラウザーで開かれたワークベンチのタブで、拡張機能をテストする SharePoint Online のページに移動します。

  5. 次のクエリ文字列パラメーターを URL に追加します。 独自の拡張機能 ID と一致するように ID を更新する必要がある点に注意してください。 これは、HelloWorldApplicationCustomizer.manifest.json ファイル内にあります。

    注意

    &読みやすくするために、次のスニペットに改行インデントが追加されました。 次のテキストは、スペースなしの単一行にする必要があります。

    ?loadSPFX=true
    &debugManifestsFile=https://localhost:4321/temp/manifests.js
    &customActions={"e5625e23-5c5a-4007-a335-e6c2c3afa485":{
        "location":"ClientSideExtension.ApplicationCustomizer",
        "properties":{
          "testMessage":"Hello as property!"
        }
    }}
    

    URL パラメーターの詳細:

    • loadSPFX=true は SharePoint Framework が確実にページに読み込まれるようにします。 パフォーマンス上の理由から、少なくとも 1 つの拡張機能が登録されていないとフレームワークは読み込まれません。 登録されているコンポーネントがないため、フレームワークを明示的に読み込む必要があります。
    • debugManifestsFile は、ローカルに提供されている SPFx コンポーネントを読み込むように指定します。 ローダーはアプリ カタログ (展開したソリューション用) と SharePoint マニフェスト サーバー (システム ライブラリ用) のコンポーネントのみを検索します。
    • customActions は、カスタム アクションをシミュレートします。 このコンポーネントをサイトに展開して登録するときに、この CustomAction オブジェクトを作成して、そのオブジェクトに設定できる各種プロパティをすべて記述します。
      • Key は、カスタム アクションに関連付けるキーとして拡張機能の GUID を使用します。 これは、拡張機能の ID 値と一致する必要があります。この ID 値は、拡張機能の manifest.json ファイルにあります。
      • Location は、カスタム アクションの種類です。 アプリケーション カスタマイザー拡張機能には、ClientSideExtension.ApplicationCustomizer を使用します。
      • Properties は、this.properties メンバーを介して利用できるプロパティを含む、オプションの JSON オブジェクトです。 この HelloWorld の例では、testMessage プロパティを定義しました。

    完全な URL は、次のようになります。

    注意

    &読みやすくするために、次のスニペットに改行インデントが追加されました。 次のテキストは、スペースなしの単一行にする必要があります。

    https://contoso.sharepoint.com/Lists/Contoso/AllItems.aspx
        ?loadSPFX=true
        &debugManifestsFile=https://localhost:4321/temp/manifests.js
        &customActions={"e5625e23-5c5a-4007-a335-e6c2c3afa485":{
            "location":"ClientSideExtension.ApplicationCustomizer",
            "properties":{
              "testMessage":"Hello as property!"
            }
        }}
    
  6. [デバッグ スクリプトを読み込む] を選択して、ローカル ホストからのスクリプトの読み込みを続行します。

    ページからのデバッグ マニフェストの質問を許可する

    ページが読み込まれると、ページ上の拡張機能 (この場合は、リスト ビュー コマンド拡張機能) を確認できるようになります。

    ページに読み込まれた SPFx 拡張機能

    さらに、ブレークポイントを切り替えて、コードをステップ実行できるようにもなっています。

    Visual Studio Code でヒットしたブレークポイント

Microsoft Edge または以前のプロジェクトでのデバッグ

以前のバージョンの SharePoint Framework Yeoman ジェネレーターを使用している場合や Microsoft Edge でデバッグする場合は、次に示す手順を実行して、launch.json ファイルを手動で作成します。

注:

Microsoft Edge でデバッグするためには、Microsoft Edge DevTools プロトコルが含まれている Windows 10 April 2018 Update をインストールする必要があります。

ホストされているワークベンチのデバッグ構成を作成する

  1. Visual Studio Code で、.vscode/launch.json ファイルを開きます。

  2. Microsoft Edge の場合は、既存のデバッグ構成をコピーして、ホストされているワークベンチの URL を使用します。

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Hosted workbench",
          "type": "msedge",
          "request": "launch",
          "url": "https://contoso.sharepoint.com/_layouts/workbench.aspx",
          "webRoot": "${workspaceRoot}",
          "sourceMaps": true,
          "sourceMapPathOverrides": {
            "webpack:///.././src/*": "${webRoot}/src/*",
            "webpack:///../../../src/*": "${webRoot}/src/*",
            "webpack:///../../../../src/*": "${webRoot}/src/*",
            "webpack:///../../../../../src/*": "${webRoot}/src/*"
          }
        }
      ]
    }
    
  3. Chrome の場合は、既存のデバッグ構成をコピーして、ホストされているワークベンチの URL を使用します。

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Hosted workbench",
          "type": "pwa-chrome",
          "request": "launch",
          "url": "https://contoso.sharepoint.com/_layouts/workbench.aspx",
          "webRoot": "${workspaceRoot}",
          "sourceMaps": true,
          "sourceMapPathOverrides": {
            "webpack:///.././src/*": "${webRoot}/src/*",
            "webpack:///../../../src/*": "${webRoot}/src/*",
            "webpack:///../../../../src/*": "${webRoot}/src/*",
            "webpack:///../../../../../src/*": "${webRoot}/src/*"
          },
          "runtimeArgs": [
            "--remote-debugging-port=9222",
            "-incognito"
          ]
        }
      ]
    }
    

関連項目