Strapi项目在VSCode中开箱即用需装Node.js和ESLint扩展、配置launch.json指向npm run develop、启用source-maps、REST Client请求体须包裹data字段且头尾空行、插件开发用yarn link、禁用VSCode实验性文件监听。

Strapi 项目在 VSCode 中怎么开箱即用
VSCode 本身不识别 Strapi 项目结构,但只要装对扩展、设好路径、启动方式对,就能直接编辑 + 调试。关键不是“支持 Strapi”,而是让 VSCode 正确识别 Node.js 运行时、环境变量和调试入口。
- 必须安装
Node.js扩展(官方推荐)和ESLint(用于校验 Strapi 自带的 JS 配置文件,如config/server.js) - Strapi v4+ 默认使用 ESM,需确认
package.json中有"type": "module",否则import语句会报错 - 不要手动改
src/index.js—— Strapi v4 的入口是./node_modules/strapi/lib/commands/develop.js,调试时应以此为启动目标 - VSCode 内置终端执行
npm run develop最稳;用strapi develop可能因全局安装路径混乱导致找不到插件
为什么 launch.json 配置后断点不命中
Strapi 是动态加载控制器和服务的框架,launch.json 如果只配了简单 Node 启动,根本进不到你写的 src/api/article/controllers/Article.js 里。
- 必须用
request: "launch"+runtimeExecutable指向本地npm,而非直接运行node:"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/npm" -
args必须写成:["run", "develop"],不能写["develop"](后者会跳过 npm scripts,失去环境变量注入) - 确保
env中包含NODE_OPTIONS: "--enable-source-maps",否则 TypeScript 编译后的断点位置会偏移 - 如果用了 Docker 开发(比如
nerdctl),VSCode 必须通过Remote - Containers连入容器,且容器内要装node和npm,不能只挂载源码
REST Client 测试 Strapi API 时 400/401 频发
Strapi 默认启用 JWT 认证和内容类型校验,REST Client 发请求稍有格式偏差就直接拒收,不是接口问题,是客户端没对齐预期。
- POST/PUT 请求体必须加空行分隔 headers 和 body,例如:
POST http://localhost:1337/api/articlesContent-Type: application/jsonAuthorization: Bearer {{token}}{ "data": { "title": "test" } } - Strapi v4 的 REST API 全部要求顶层包裹
data字段,裸 JSON 如{"title":"x"}会 400 —— 这和 Postman 里“自动补 data”的行为不同,REST Client不做任何转换 - Token 必须从
POST http://localhost:1337/api/auth/local响应中手动提取response.body.data.jwt,然后存为变量:@token = {{login.response.body.data.jwt}} - 若用 SQLite 开发,首次请求可能卡住几秒 —— 不是失败,是 Strapi 在建表,
REST Client默认超时 10s,可加 header:rest-client.timeout: 30000(写在settings.json里)
Strapi 插件或自定义服务修改后热更新失效
Strapi 的 develop 模式默认监听 src/**/*,但不会监听 node_modules/strapi-plugin-xxx 或符号链接目录,改了插件代码不重启,VSCode 就永远看不到效果。
- 开发插件时,别用
npm link,改用yarn link+yarn link "strapi-plugin-xxx",Yarn 对 symlink 的 watch 更可靠 - 在
config/server.js中显式开启文件监听增强:watchIgnoreFiles: ["./src/admin/**/*"],host: "0.0.0.0", // 允许外部访问,方便 REST Client 测试 - VSCode 设置中关闭
files.useExperimentalFileWatcher(设为false),Strapi 的 chokidar 与 VSCode 实验性 watcher 有冲突,会导致变更不触发 reload - 改完
src/extensions/users-permissions/config/jwt.js这类配置,必须重启整个进程 —— 它不在热更范围内
Strapi 的调试链路比普通 Express 项目长一截:HTTP 请求 → Strapi Router → Controller → Service → Model → DB,任一环的配置偏差(比如 pathMappings 没对齐 src/ 目录,或 REST Client 少了个空行)都会表现为“断点无效”或“请求失败”,而不是清晰的错误提示。最省事的方式是先用 npm run develop 确保服务能跑通,再逐层加调试器和测试请求。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











