Есть несколько разных способов отладки 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
файл.
EDIT: Если вы хотите запускать команды, требующие контекста Studio, вы можете запустить сценарий symlinkDependencies.js
. Примером этого может быть следующее:
node symlinkDependencies.js "/<path>/<to>/<your>/<studio>/<folder>" --all
Это создаст символические ссылки между вашим экземпляром Studio и Sanity monorepo. Вам также нужно будет запустить npm run watch
в монорепозитории. Таким образом, вы можете редактировать код в монорепозитории, и запускаемые вами команды будут содержать ваши изменения.
Еще одна вещь, которую вы можете попробовать, - это добавить переменную окружения DEBUG=*
. Это выведет отладочную информацию при запуске команды CLI. Если вы используете Ma c, вы можете просто запустить 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"
]
}
или что-то в этом роде. Сам я такой подход не пробовал.