如何解决Sanity中part:@sanity/base/schema-creator导入失败及React18.2兼容问题
解决@sanity/base与React18.2不兼容及导入失败问题
问题梳理
- 核心错误提示:
[plugin:vite:import-analysis] Failed to resolve import "part:@Choose/base/schema-creator" from "schemas/schema.js". Does the fileExist?
- 尝试安装
@sanity/base时遭遇版本与React18.2不兼容问题,且不愿升级React/ReactDOM - 问题出现在修改
sanity.config.js导入语句为import {schemaTypes} from './schemas/schema'之后
可行解决办法
1. 安装兼容React18的指定版本@sanity/base
Sanity从v3.10版本开始支持React18,直接安装该区间的版本可避免冲突:
npm install @sanity/base@^3.10.0
安装完成后用以下命令验证依赖状态:
npm ls @sanity/base
2. 修正schema文件的part引用错误
注意到错误信息里的part:@Choose/base/schema-creator存在笔误,Choose应为sanity,修正为part:@sanity/base/schema-creator。如果是Sanity v3项目,更推荐直接从sanity包导入schema工具,无需依赖@sanity/base:
// schemas/schema.js import { defineType, defineField } from 'sanity' export const schemaTypes = [ // 此处编写你的具体schema定义 ]
3. 强制覆盖依赖版本实现兼容
若指定版本仍有冲突,可在package.json中添加overrides字段,强制让@sanity/base使用你的React版本:
{ "overrides": { "@sanity/base": { "react": "^18.2.0", "react-dom": "^18.2.0" } } }
添加后执行npm install重新安装依赖即可。
4. 统一回退到兼容React18的Sanity套件版本
如果单改@sanity/base无效,可以将整个Sanity相关包回退到v3.10+版本,确保整体生态兼容:
npm install sanity@^3.10.0 @sanity/cli@^3.10.0
内容的提问来源于stack exchange,提问作者Jerm
相关产品推荐
相关产品推荐

