有多种不同的方法可以调试 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 之间创建符号链接。您还必须npm run watch
在 monorepo 中运行。这样您就可以在 monorepo 中编辑代码,并且您运行的命令将包含您的更改。
您可以尝试的另一件事是添加环境变量DEBUG=*
。这将在运行 CLI 命令时输出调试信息。如果你在 Mac 上,你可以简单地运行DEBUG=* sanity exec migrate.js --with-user-token
. 如果您使用的是 Windows,请打开 PowerShell 并运行以下命令:$env:DEBUG=*
. 这仅为此 PowerShell 会话设置环境变量。然后,您可以运行您的命令。
对于您的确切问题,我想您可以尝试使用以下配置:
{
"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"
]
}
或类似的东西。我自己没有尝试过这种方法。