执行sanity init时@sanity/vision插件缺失sanity.json错误求助
解决Sanity init时"Error: No 'sanity.json' file found in plugin '@sanity/vision'"错误
问题描述
执行sanity init创建新项目时触发如下错误:
Error: No "sanity.json" file found in plugin "@sanity/vision" See https://docs.sanity.io/help/missing-plugin-sanity-json at handleManifestReadError (C:/Users/Bernadette Kotelo/Documents/Projects/Renanit's Art Portfolio/server/node_modules/@sanity/resolver/lib/readManifest.js:27:11) at C:/Users/Bernadette Kotelo/Documents/Projects/Renanit's Art Portfolio/server/node_modules/@sanity/resolver/lib/readManifest.js:56:60 at async Promise.all (index 4)
已尝试删除node_modules并执行sanity install、重新创建项目等操作,问题仍未解决。
解决方案
1. 确认Sanity版本兼容性
Sanity v3移除了sanity.json配置文件,改用sanity.config.js,而@sanity/vision插件的v3版本也不再包含sanity.json。如果项目是v3版本,但依赖中混入了v2版本的插件,就会触发该错误:
- 查看项目根目录的
package.json,确认sanity以及@sanity/vision的版本一致(均为v3.x); - 若版本不匹配,卸载旧版本并安装对应v3版本:
npm uninstall sanity @sanity/vision npm install sanity@latest @sanity/vision@latest
2. 修正sanity.config.js的插件引入方式
v3中引入@sanity/vision的方式与v2不同,确保配置文件中正确引入:
// sanity.config.js import {defineConfig} from 'sanity' import {visionTool} from '@sanity/vision' import {schemaTypes} from './schemas' export default defineConfig({ name: 'default', title: 'Your Project Name', projectId: 'your-project-id', dataset: 'production', plugins: [visionTool()], // 正确使用visionTool()而非字符串"@sanity/vision" schema: { types: schemaTypes, }, })
3. 清理包管理器缓存并重新安装
缓存损坏可能导致依赖安装不完整,执行以下命令:
- 对于npm:
npm cache clean --force rm -rf node_modules package-lock.json npm install - 对于yarn:
yarn cache clean rm -rf node_modules yarn.lock yarn install
4. 手动指定插件版本安装
如果自动安装的版本仍有问题,尝试指定具体的兼容稳定版:
npm install sanity@3.16.7 @sanity/vision@3.16.7
(版本号可根据官方最新稳定版调整)
内容的提问来源于stack exchange,提问作者MegaMindTheCoder
相关产品推荐
相关产品推荐

