簡體   English   中英

使用 VS Code 調試 Sanity exec

[英]Debugging Sanity exec with VS Code

我正在使用 Sanity (sanity.io 無頭 CMS) 並使用 CLI 進行一些數據遷移。

我如何(或者,是否有可能)如何附加 vscode 調試器並在遷移腳本中的斷點處停止。 我正在運行以下 cli 遷移腳本: sanity exec migrate.js --with-user-token 我想在 migrate.js 中的斷點處停止?

我已經管理了使用節點運行的調試控制台應用程序,但不知道在使用sanity exec..啟動腳本時是否可以讓調試器參與進來。 單步執行代碼是查找錯誤和學習的好方法。

有多種不同的方法可以調試 Sanity CLI。 不過,我之前沒有嘗試過你的方法。

如果您願意,您可以克隆操作系統存儲庫 這可能會讓你的事情變得更容易。 如果您使用的是 VS Code,那么您可以使用此啟動配置來運行帶有調試器的 CLI:

{
    "type": "node",
    "request": "launch",
    "name": "Launch CLI",
    "program": "${workspaceFolder}/packages/@sanity/cli/bin/entry.js",
    "args": [
        "exec",
        "migrate.js",
        "--with-user-token"
    ]
}

您必須先運行npm run build才能生成entry.js文件。

編輯:如果要運行需要 Studio 上下文的命令,可以運行symlinkDependencies.js腳本。 這方面的一個例子可以是:

node symlinkDependencies.js "/<path>/<to>/<your>/<studio>/<folder>" --all

這將在您的 Studio 實例和 Sanity monorepo 之間創建符號鏈接。 您還必須在 monorepo 中運行npm run watch 這樣您就可以在 monorepo 中編輯代碼,並且您運行的命令將包含您的更改。


您可以嘗試的另一件事是添加環境變量DEBUG=* 這將在運行 CLI 命令時 output 調試信息。 如果你在 Mac 上,你可以簡單地運行DEBUG=* sanity exec migrate.js --with-user-token 如果您使用的是 Windows,請打開 PowerShell 並運行: $env:DEBUG=* 這僅為此 PowerShell session 設置環境變量。 然后,您可以運行您的命令。

對於您的確切問題,我想您可以嘗試使用以下配置:

{
    "type": "node",
    "request": "launch",
    "name": "Launch CLI",
    "program": "/usr/local/lib/node_modules/@sanity/cli/bin/entry.js",
    "args": [
        "exec",
        "migrate.js",
        "--with-user-token"
    ]
}

或類似的東西。 我自己沒有嘗試過這種方法。

我最終未能成功調試sanity exec命令,但在重新編寫腳本后,我通過正常的節點調試完成了大部分相同的工作。

  • client from '@sanity/client' import -ed 客戶端。
  • 為我希望寫入或從中讀取草稿的項目制作了訪問令牌。
  • 添加了適當的啟動配置,並且,
  • 從 vscode 運行節點 v14.2.0 正常調試器,並使用斷點逐步執行我的腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM