我正在使用Sanity (sanity.io无头CMS),并使用CLI进行一些数据迁移。
我如何(或者,在可能的情况下)如何附加vscode调试器并在迁移脚本中的断点停止。我正在运行以下cli迁移脚本:sanity exec migrate.js --with-user-token。我想在migrate.js的断点停留吗?
我已经管理了与节点一起运行的调试控制台应用程序,但不知道在用sanity exec ..启动脚本时是否可以让调试器启动。深入研究代码是查找bug和学习的好方法。
发布于 2020-06-08 17:33:14
我在调试sanity exec命令时最终失败了,但是在重新处理脚本之后,我完成了大部分与普通节点调试相同的工作。
import-ed client from '@sanity/client'.发布于 2020-05-07 12:11:30
有多种不同的方法来调试是否正确的CLI。不过,我以前没试过你的方法。
如果你准备好了,你可以克隆OS存储库。这可能会让你更容易。如果使用VS代码,则可以使用此启动配置运行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文件。
编辑:如果您想运行需要一个symlinkDependencies.js上下文的命令,可以运行symlinkDependencies.js脚本。这方面的一个例子是:
node symlinkDependencies.js "/<path>/<to>/<your>/<studio>/<folder>" --all这将在Studio实例和Sanity monorepo之间创建符号链接。您还必须在monorepo中运行npm run watch。这样,您就可以在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"
]
}或者类似的东西。我自己也没试过这种方法。
https://stackoverflow.com/questions/61652819
复制相似问题