如何在 VSCode 中配置运行并调试 Sanity.io 后台代码

冬明酱_7316

冬明酱_7316

2026-06-16

1011人浏览

原创

根本原因是全局未安装sanity-cli或vscode终端未继承系统path,需先在系统终端验证sanity命令是否可用,再通过code --new-window启动vscode继承环境,或局部安装后用npx调用。

如何在 vscode 中配置运行并调试 sanity.io 后台代码

启动 Sanity 项目时提示 Command not found: sanity

根本原因是全局没装 sanity-cli,或者装了但 VSCode 的终端没继承系统 PATH。别急着重装,先确认当前终端是否能跑通命令:

  • 在系统终端(不是 VSCode 内置终端)里执行 which sanity 或 sanity --version,看是否返回路径和版本号
  • 如果系统终端正常,VSCode 终端报错,说明 VSCode 没读取 shell 配置(比如 ~/.zshrc 或 ~/.bash_profile)。关掉所有 VSCode 窗口,用命令行启动:code --new-window,它会继承当前 shell 环境
  • 若仍不行,直接局部安装 CLI:在项目根目录运行 npm install --save-dev @sanity/cli,然后用 npx 调用:npx sanity start

调试 sanity start 时断点不生效

默认 sanity start 启动的是编译后的产物(dist/),源码断点自然无效。必须启用开发模式并指定调试入口:

  • 确保项目有 sanity.cli.js 或 sanity.cli.ts(新版 Sanity v3+ 推荐用 TS),里面导出配置对象
  • 在 .vscode/launch.json 中添加以下配置(注意 runtimeExecutable 和 args):
{
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Sanity dev",
      "runtimeExecutable": "npx",
      "args": ["sanity", "start", "--dev"],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "skipFiles": ["<node_internals>/**"]
    }
  ]
}</node_internals>
  • --dev 是关键——它强制使用未编译的源码(src/),且开启 watch 和 sourcemap
  • 如果项目用 TypeScript,确保 tsconfig.json 中 "sourceMap": true 已启用
  • 断点打在 src/schema 或 src/studio 下的文件里才有效,别打在 dist/ 或 node_modules 里

修改 schema 后热更新失效或报 TypeError: Cannot read properties of undefined

这不是 VSCode 配置问题,而是 Sanity Studio 的模块缓存机制导致的。本地开发时,频繁改 schema 容易触发 stale module 引用:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 重启 sanity start 是最稳妥的,但太慢;可先尝试快捷键 Ctrl+Shift+P → 输入 “Developer: Restart Language Server”,再刷新浏览器
  • 检查 schema 文件是否意外导出了非 object 类型(比如导出一个函数但没调用,或用了 export default () => ({...}) 却忘了执行)
  • 常见陷阱:在 schema/index.js 里用了 require('./someType'),但该文件里又 require 了当前文件,形成循环依赖 —— 此时 Node 会返回 undefined,导致后续报错
  • 建议统一用 ES modules + import,并在 sanity.cli.js 里显式设置 module.exports = defineConfig({ ... }),避免 CommonJS 混用

VSCode 插件推荐与必要设置

不用装“Sanity”官方插件(它基本没维护),真正有用的只有几个基础配置:

  • 装 ESLint 插件,并确保项目根目录有 .eslintrc.js(Sanity 官方模板自带),否则 import 提示、类型推导会弱很多
  • 装 Prettier,并在 .prettierrc 里加 "semi": false(Sanity 社区普遍用无分号风格)
  • 在 .vscode/settings.json 加这两项,避免自动格式化破坏 Sanity 的 schema 声明顺序:
{
  "editor.formatOnSave": true,
  "javascript.format.semicolons": "omit"
}
  • 禁用 Auto Import 类插件对 defineSchema 的自动补全——它常把 defineSchema 错补成 defineConfig,导致启动失败

调试 Sanity 不是配个 launch.json 就完事,核心在于理解它的两层启动逻辑:CLI 命令解析层(Node 进程)和 Studio 渲染层(浏览器)。断点只对前者有效,后者要用浏览器 DevTools 查 state 和 network。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1355

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2872

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1969

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1727

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2607

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1838

14

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1262

10

vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1116

8

vscode设置中文界面不生效解决方法
vscode设置中文界面不生效解决方法

vscode设置中文界面不生效解决方法:安装中文语言包、通过命令面板设置语言、检查 locale.json 设置、重新安装中文语言包、检查 VSCode 版本和更新、排除插件冲突、检查系统语言设置、查看 VSCode 日志和错误消息、重置 VSCode 设置、查看官方文档和社区支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

494

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程