You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo+Sanity.io开发React Native移动端报错:重复文件或模拟项

解决Expo React Native集成Sanity.io后移动端重复文件报错问题

报错现象

Expo开发的React Native应用,Web端运行正常,但iOS模拟器、Android Studio中出现报错:Error: Duplicated files or mocks. ReactNative-Expo-sanity.io

可行解决步骤

  • 清理Expo缓存
    缓存堆积是这类重复文件报错的常见诱因,执行命令重启项目:

    npx expo start --clear
    
  • 重新安装依赖
    依赖版本冲突或重复安装也会引发该问题,按以下步骤操作:

    1. 删除项目根目录下的node_modules文件夹、package-lock.json(或yarn.lock)文件
    2. 重新安装依赖:
      npm install
      # 使用yarn的话执行:
      # yarn install
      
  • 配置Metro排除重复文件
    在项目根目录的metro.config.js中添加规则,排除Sanity相关的重复mock或测试文件,示例配置:

    const { getDefaultConfig } = require('@expo/metro-config');
    
    const config = getDefaultConfig(__dirname);
    
    config.resolver.blockList = new Set([
      ...config.resolver.blockList,
      /node_modules\/sanity\/.*\/mock\.js/,
      /node_modules\/sanity\/.*\/test\.js/,
    ]);
    
    module.exports = config;
    
  • 检查Sanity依赖适配性
    确保使用适配React Native环境的Sanity包,优先用@sanity/client而非包含Web专属依赖的包;如果用到了Sanity的Web专属组件(比如预览组件),需要通过Platform.OS做条件渲染,仅在Web端加载这类组件。

内容的提问来源于stack exchange,提问作者sebastian velez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:48:24